30 Nov, 2007

40 commits

  • Some open flags (O_APPEND, O_DIRECT) can be changed with fcntl(F_SETFL, ...)
    after open, but fuse currently only sends the flags to userspace in open.

    To make it possible to correcly handle changing flags, send the
    current value to userspace in each read and write.

    Signed-off-by: Miklos Szeredi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • Extract repeated code into helper function, as suggested by Akpm.

    Signed-off-by: Miklos Szeredi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • Currently reading a fuse file will stop at cached i_size and return
    EOF, even though the file might have grown since the attributes were
    last updated.

    So detect if trying to read past EOF, and refresh the attributes
    before continuing with the read.

    Thanks to mpb for the report.

    Signed-off-by: Miklos Szeredi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • Changes __meminit to __init_refok.

    WARNING: vmlinux.o(.text+0x1d07c): Section mismatch: reference to
    .init.text:find_e820_area (between 'init_memory_mapping' and 'arch_add_memory')

    Signed-off-by: KAMEZAWA Hiroyuki
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • Fixes section mismatch below.

    WARNING: vmlinux.o(.text+0x946b5): Section mismatch: reference to .init.text:'
    __alloc_bootmem_node (between 'vmemmap_alloc_block' and 'vmemmap_pgd_populate')

    Signed-off-by: KAMEZAWA Hiroyuki
    Cc: Kamalesh Babulal
    Cc: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • This patch adds document for EFI x86_64 boot support. The setup and operation
    guide of EFI based system is documented in Documentation/x86_64/uefi.txt.

    Signed-off-by: Chandramouli Narayanan
    Signed-off-by: Huang Ying
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Huang, Ying
     
  • This patch adds Graphics Output Protocol support to the kernel. UEFI2.0 spec
    deprecates Universal Graphics Adapter (UGA) protocol and only Graphics Output
    Protocol (GOP) is produced. Therefore, the boot loader needs to query the
    UEFI firmware with appropriate Output Protocol and pass the video information
    to the kernel. As a result of GOP protocol, an EFI framebuffer driver is
    needed for displaying console messages. The patch adds a EFI framebuffer
    driver. The EFI frame buffer driver in this patch is based on the Intel Mac
    framebuffer driver.

    The ELILO bootloader takes care of passing the video information as
    appropriate for EFI firmware.

    The framebuffer driver has been tested in i386 kernel and x86_64 kernel on EFI
    platform.

    Signed-off-by: Chandramouli Narayanan
    Signed-off-by: Huang Ying
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Andi Kleen
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Huang, Ying
     
  • Revert 7eea436433b7b18045f272562e256976f593f7c0.

    Lucy said:

    This patch will work with the 19HS but WILL BREAK all other Keyspan
    adapters. It will take me a few days to get to looking at a correct fix but
    that keyspan_send_setup(port, 1) (and the '1' is the important part) must
    happen once when the port is first opened. The cflag can just be set to
    whatever the normal default is for your serial environment.

    So revert this again pending the proper fix.

    Cc: Borislav Petkov
    Cc: Greg KH
    Cc: Alan Cox
    Cc: Lucy McCoy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Cc: Edgar Hucek
    Cc: "Antonino A. Daplas"
    Cc: Kamalesh Babulal
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Signed-off-by: Miklos Szeredi
    Cc: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • With NO_HZ disabled, the UML idle loop effectively becomes a busy loop, as
    it will sleep for no time.

    The cause was forgetting to restart the tick after waking up from sleep.
    It was disabled before sleeping, and the remaining time used as the
    interval to sleep. So, the tick needs to be restarted when nanosleep
    finishes.

    This is done by introducing after_sleep_interval, which is empty in the
    NO_HZ case, but which sets the tick starting in the !NO_HZ case.

    Signed-off-by: Jeff Dike
    Cc: Miklos Szeredi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • got this HiSax bootup crash on a "make randconfig" bzImage bootup:

    Calling initcall 0xc0bb1320: HiSax_init+0x0/0x380()
    HiSax: Linux Driver for passive ISDN cards
    HiSax: Version 3.5 (kernel)
    HiSax: Layer1 Revision 2.46.2.5
    HiSax: Layer2 Revision 2.30.2.4
    HiSax: TeiMgr Revision 2.20.2.3
    HiSax: Layer3 Revision 2.22.2.3
    HiSax: LinkLayer Revision 2.59.2.4
    HiSax: Total 1 card defined
    HiSax: Card 1 Protocol EDSS1 Id=HiSax (0)
    HiSax: HFC-S driver Rev. 1.10.2.4
    HFCS: defined at 0x500 IRQ 5 HZ 250
    Teles 16.3c: IRQ 5 count 0
    HFCS: resetting card
    Teles 16.3c: IRQ 5 count 0
    Teles 16.3c: IRQ(5) getting no interrupts during init 1
    HFCS: resetting card
    ------------[ cut here ]------------
    kernel BUG at include/linux/timer.h:145!
    invalid opcode: 0000 [#1] PREEMPT DEBUG_PAGEALLOC
    Modules linked in:

    Pid: 1, comm: swapper Not tainted (2.6.24-rc3 #2045)
    EIP: 0060:[] EFLAGS: 00010286 CPU: 0
    EIP is at hfcs_card_msg+0x15f/0x180
    EAX: c0cf2e5c EBX: 000000f2 ECX: 00000000 EDX: ffff1193
    ESI: f76e8000 EDI: f76e8000 EBP: f7c23ec4 ESP: f7c23eac
    DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
    Process swapper (pid: 1, ti=f7c22000 task=f7c0e000 task.ti=f7c22000)
    Stack: 00000000 f7c23ec4 c011703b 00000002 f76e8000 00000000 f7c23ef8 c060c3e5
    c0a7c9c0 c0a315dc 00000005 00000001 00000000 f7c23f34 00000000 c0b5c9c0
    f7c23f34 00000000 c0f5a8e0 f7c23f80 c0bb154f 00000000 00000001 c0a9b5b9
    Call Trace:
    [] show_trace_log_lvl+0x1a/0x40
    [] show_stack_log_lvl+0xa9/0xe0
    [] show_registers+0xbf/0x200
    [] die+0x104/0x220
    [] do_trap+0x83/0xc0
    [] do_invalid_op+0x88/0xa0
    [] error_code+0x6a/0x70
    [] checkcard+0x4a5/0x620
    [] HiSax_init+0x22f/0x380
    [] kernel_init+0x97/0x2a0
    [] kernel_thread_helper+0x7/0x20
    =======================
    Code: e8 43 ae ff 8b 57 3c 85 d2 0f 84 ef fe ff ff b8 a0 99 ad c0 b9 02 00 00 00 e8 ce 11 ae ff 83 c4 0c b8 00 00 00 00 5b 5e 5f c9 c3 0b eb fe 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
    EIP: [] hfcs_card_msg+0x15f/0x180 SS:ESP 0068:f7c23eac
    Kernel panic - not syncing: Attempted to kill init!

    The box has no HiSax card installed.

    the reason for the crash is add_timer() done on an already running
    timer. This happens because for some reason CARD_INIT is called twice.

    this patch works this problem around by using mod_timer() - this gets
    a booting system - but it would be nice to figure out why CARD_INIT
    is done twice.

    the ISDN config section (generated via make randconfig) is this:

    #
    # ISDN feature submodules
    #
    # CONFIG_ISDN_DRV_LOOP is not set
    CONFIG_ISDN_DIVERSION=y

    #
    # ISDN4Linux hardware drivers
    #

    #
    # Passive cards
    #
    CONFIG_ISDN_DRV_HISAX=y

    #
    # 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 is not set
    # CONFIG_HISAX_TELESPCI is not set
    CONFIG_HISAX_S0BOX=y
    # CONFIG_HISAX_AVM_A1 is not set
    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 is not set
    # CONFIG_HISAX_TELEINT is not set
    CONFIG_HISAX_HFCS=y
    # CONFIG_HISAX_SEDLBAUER is not set
    CONFIG_HISAX_SPORTSTER=y
    # CONFIG_HISAX_MIC is not set
    # CONFIG_HISAX_NETJET is not set
    # CONFIG_HISAX_NETJET_U is not set
    # CONFIG_HISAX_NICCY is not set
    # CONFIG_HISAX_ISURF is not set
    # CONFIG_HISAX_HSTSAPHIR is not set
    # CONFIG_HISAX_BKM_A4T is not set
    # CONFIG_HISAX_SCT_QUADRO is not set
    # CONFIG_HISAX_GAZEL is not set
    # CONFIG_HISAX_HFC_PCI is not set
    # CONFIG_HISAX_W6692 is not set
    # CONFIG_HISAX_HFC_SX is not set
    # CONFIG_HISAX_DEBUG is not set

    #
    # HiSax PCMCIA card service modules
    #

    #
    # HiSax sub driver modules
    #
    CONFIG_HISAX_ST5481=y
    CONFIG_HISAX_HFCUSB=y
    # CONFIG_HISAX_HFC4S8S is not set
    CONFIG_HISAX_FRITZ_PCIPNP=y
    CONFIG_HISAX_HDLC=y

    #
    # Active cards
    #
    CONFIG_ISDN_DRV_ICN=m
    CONFIG_ISDN_DRV_PCBIT=m
    CONFIG_ISDN_DRV_SC=y
    # CONFIG_ISDN_DRV_ACT2000 is not set
    CONFIG_HYSDN=m
    # CONFIG_ISDN_DRV_GIGASET is not set
    # CONFIG_ISDN_CAPI is not set
    CONFIG_PHONE=y
    CONFIG_PHONE_IXJ=m

    Signed-off-by: Ingo Molnar
    Cc: Karsten Keil
    Cc: Kai Germaschewski
    Cc: "Rafael J. Wysocki"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • An unprivileged process must be able to kill a setuid root program started
    by the same user. This is legacy behavior needed for instance for xinit to
    kill X when the window manager exits.

    When an unprivileged user runs a setuid root program in !SECURE_NOROOT
    mode, fP, fI, and fE are set full on, so pP' and pE' are full on. Then
    cap_task_kill() prevents the user from signaling the setuid root task.
    This is a change in behavior compared to when
    !CONFIG_SECURITY_FILE_CAPABILITIES.

    This patch introduces a special check into cap_task_kill() just to check
    whether a non-root user is signaling a setuid root program started by the
    same user. If so, then signal is allowed.

    Signed-off-by: Serge E. Hallyn
    Cc: Andrew Morgan
    Cc: Stephen Smalley
    Cc: Chris Wright
    Cc: James Morris
    Cc: Casey Schaufler
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Serge E. Hallyn
     
  • As Herbert Xu pointed out, bytes (chars) with bit 7 (0x80) set are true
    with isprint() but they may not be isascii() but be Unicode instead, so
    don't try to print them in hex dumps.

    Signed-off-by: Randy Dunlap
    Cc: Herbert Xu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • In commit a686cd898bd999fd026a51e90fb0a3410d258ddb:

    "Val's cross-port of the ext3 reservations code into ext2."

    include/linux/ext2_fs.h got a new function whose return value is only
    defined if __KERNEL__ is defined. Putting #ifdef __KERNEL__ around the
    function seems to help, patch below.

    Signed-off-by: Eric Sandeen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tobias Poschwatta
     
  • - fix lockup when switching from early console to real console
    - make sysrq reliable
    - fix panic, if sysrq is issued before console is opened

    Signed-off-by: Thomas Bogendoerfer
    Acked-by: Ralf Baechle
    Cc: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Bogendoerfer
     
  • This patch corrects recently changed (and now invalid) Kconfig descriptions
    for the DMA engine framework:

    - Non-Intel(R) hardware also has DMA engines;
    - DMA is used for more than memcpy and RAID offloading.

    In fact, on most platforms memcpy and RAID aren't factors, and DMA
    exists so that peripherals can transfer data to/from memory while
    the CPU does other work.

    Signed-off-by: Haavard Skinnemoen
    Signed-off-by: David Brownell
    Signed-off-by: Dan Williams
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Haavard Skinnemoen
     
  • This patch adds an additional loop, that delays turning off the DMA
    until the LCDC core has been turned off. This prevents the picture
    to be shifted some random length when the kernel re-initializes
    the LCDC.

    Without this patch, the LCDC keeps running for some small time after the
    PWRCON:LCD_PWR has been cleared ; the FIFO suffers an underrun and on
    re-starting the LCDC the FIFO data stays shifted.

    This behavior has been seen and fixed on AT91SAM9261-EK and two custom
    AT91SAM9261 boards, all of them having different LCD panels.

    Thanks a lot to Anti Sullin for submitting this patch (long
    time ago).

    Signed-off-by: Anti Sullin
    Signed-off-by: Andrew Victor
    Signed-off-by: Nicolas Ferre
    Acked-by: Haavard Skinnemoen
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anti Sullin
     
  • People discuss how the namespaces are working/going-to-work together.

    Ted Ts'o proposed to create some document that describes what problems user
    may have when he/she creates some new namespace, but keeps others shared.
    I liked this idea, so here's the initial version of such a document with
    the problems I currently have in mind and can describe somewhat audibly -
    the "namespaces compatibility list".

    The Documentation/namespaces/ directory is about to contain more docs about
    the namespaces stuff.

    Thanks to Cedirc for notes and spell checks on the doc, to Daniel for
    additional info about IPC and User namespaces interaction and to Randy, who
    alluded me to using a spell checker before sending the documentation :)

    Signed-off-by: Pavel Emelyanov
    Cc: Randy Dunlap
    Cc: Daniel Lezcano
    Cc: Theodore Tso
    Cc: Cedric Le Goater
    Cc: "Eric W. Biederman"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Emelyanov
     
  • Commit 7d69a1f4a72b18876c99c697692b78339d491568 ("remove CONFIG_UTS_NS
    and CONFIG_IPC_NS") by Cedric Le Goater accidentally removed the code
    that prevented the uts->hostname and uts->domainname values from being
    overwritten from another namespace.

    In other words, setting hostname/domainname via sysfs (echo xxx >
    /proc/sys/kernel/(host|domain)name) cased the new value to be set in
    init UTS namespace only.

    Return the isolation back.

    Signed-off-by: Pavel Emelyanov
    Acked-by: Cedric Le Goater
    Acked-by: Serge Hallyn
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Emelyanov
     
  • Remove errnoeous x character from dev_dbg() call that stops the driver
    compiling under debug.

    Signed-off-by: Ben Dooks
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     
  • There should be a pci_dev_put when breaking out of a loop that iterates
    over calls to pci_get_device and similar functions.

    This was fixed using the following semantic patch.

    //
    @@
    identifier d;
    type T;
    expression e;
    iterator for_each_pci_dev;
    @@

    T *d;
    ...
    for_each_pci_dev(d)
    {... when != pci_dev_put(d)
    when != e = d
    (
    return d;
    |
    + pci_dev_put(d);
    ? return ...;
    )
    ...}
    //

    Signed-off-by: Julia Lawall
    Cc: Greg KH
    Cc: Bjorn Helgaas
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Julia Lawall
     
  • The code in fb_ddc_read() is said to be based on the implementation of the
    radeon driver:
    http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=fc5891c8a3ba284f13994d7bc1f1bfa8283982de

    However, comparing the old radeon driver code with the new fb_ddc code
    reveals some differences. Most notably, the I2C bus lines are held at the
    end of the function, while the original code was releasing them (as the
    comment above correctly says.)

    There are a few other differences, which appear to be responsible for read
    failures on my system. While tracing low-level I2C code in i2c-algo-bit, I
    noticed that the initial attempt to read the EDID always failed. It takes
    one retry for the read to succeed. As we are about to remove this
    automatic retry property from i2c-algo-bit, reading the EDID would really
    fail.

    As a summary, the I2C lines quirk which is supposedly needed to read EDID
    on some older monitors is currently breaking the (first) read on all other
    monitors (and might not even work with older ones - did anyone try since
    October 2006?)

    After applying the patch below, which makes the code in fb_ddc_read()
    really similar to what the radeon driver used to have, the first EDID read
    succeeds again.

    On top of that, as it appears that this code has been broken for one year
    now and nobody seems to have complained, I'm curious if it makes sense to
    keep this quirk in place. It makes the code more complex and slower just
    for the sake of monitors which I guess nobody uses anymore. Can't we just
    get rid of it?

    Signed-off-by: Jean Delvare
    Acked-by: Benjamin Herrenschmidt
    Tested-by: Roger Leigh
    Tested-by: Michael Buesch
    Cc: "Antonino A. Daplas"
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jean Delvare
     
  • m68k: zorro7xx needs if !CONFIG_AMIGA_PCMCIA

    Reported by Ingo Juergensmann

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     
  • For reasons unclear to me, glibc's deliberately defeats the
    attempt we make in to include

    For now, change the one instance of __u32 to 'unsigned int' instead
    because it's breaking userspace. We should probably also remove our
    inclusion of , since we don't use it -- but that's not a
    change to make in -rc.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: David Woodhouse
    Cc: Samuel Thibault
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Woodhouse
     
  • The error path in sys_mq_getsetattr() after the call to
    audit_mq_getsetattr() is wrong - the info->lock is not unlocked and the
    struct file *filp is not put.

    Fix them both.

    Signed-off-by: Pavel Emelyanov
    Cc: Pierre Peiffer
    Cc: Nadia Derbey
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Emelyanov
     
  • Allow passing a bus number through the platform data for the S3C2410 SPI
    GPIO driver. This is needed to support multiple SPI busses.

    Signed-off-by: Ben Dooks
    Signed-off-by: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     
  • If we specify an GPIO which cannot be used for the purpose, then assume
    that the GPIO is not to be used and do not try and configure it. This can
    be the case where the SPI bus is TX only.

    Signed-off-by: Ben Dooks
    Signed-off-by: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     
  • Signed-off-by: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • During the initialization of the TPM TIS driver, the necessary locality has
    to be requested earlier in the init-process. Depending on the used TPM
    chip, this leads to wrong information. For example: Lenovo X61s with Atmel
    TPM:

    tpm_tis 00:0a: 1.2 TPM (device-id 0xFFFF, rev-id 255)

    But correct is:

    tpm_tis 00:0c: 1.2 TPM (device-id 0x3203, rev-id 9)

    This short patch fixes this issue.

    Signed-off-by: Marcel Selhorst
    Cc: Kylene Jo Hall
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Marcel Selhorst
     
  • Oleg noticed that the call of task_pid_nr_ns() in proc_pid_readdir
    is racy with respect to tasks exiting.

    After a bit of examination it also appears that the call itself
    is completely unnecessary.

    So to fix the problem this patch modifies next_tgid() to return
    both a tgid and the task struct in question.

    A structure is introduced to return these values because it is
    slightly cleaner and easier to optimize, and the resulting code
    is a little shorter.

    Signed-off-by: "Eric W. Biederman"
    Cc: Oleg Nesterov
    Cc: Alexey Dobriyan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • wait_task_stopped(WNOWAIT) does task_pid_nr_ns() without tasklist/rcu lock,
    we can read an already freed memory. Use the cached pid_t value.

    Signed-off-by: Oleg Nesterov
    Looks-good-to: Roland McGrath
    Acked-by: Pavel Emelyanov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • proc_kill_inodes() can clear ->i_fop in the middle of vfs_readdir resulting in
    NULL dereference during "file->f_op->readdir(file, buf, filler)".

    The solution is to remove proc_kill_inodes() completely:

    a) we don't have tricky modules implementing their tricky readdir hooks which
    could keeping this revoke from hell.

    b) In a situation when module is gone but PDE still alive, standard
    readdir will return only "." and "..", because pde->next was cleared by
    remove_proc_entry().

    c) the race proc_kill_inode() destined to prevent is not completely
    fixed, just race window made smaller, because vfs_readdir() is run
    without sb_lock held and without file_list_lock held. Effectively,
    ->i_fop is cleared at random moment, which can't fix properly anything.

    BUG: unable to handle kernel NULL pointer dereference at virtual address 00000018
    printing eip: c1061205 *pdpt = 0000000005b22001 *pde = 0000000000000000
    Oops: 0000 [#1] PREEMPT SMP
    Modules linked in: foo af_packet ipv6 cpufreq_ondemand loop serio_raw sr_mod k8temp cdrom hwmon amd_rng
    Pid: 2033, comm: find Not tainted (2.6.24-rc1-b1d08ac064268d0ae2281e98bf5e82627e0f0c56 #2)
    EIP: 0060:[] EFLAGS: 00010246 CPU: 0
    EIP is at vfs_readdir+0x47/0x74
    EAX: c6b6a780 EBX: 00000000 ECX: c1061040 EDX: c5decf94
    ESI: c6b6a780 EDI: fffffffe EBP: c9797c54 ESP: c5decf78
    DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
    Process find (pid: 2033, ti=c5dec000 task=c64bba90 task.ti=c5dec000)
    Stack: c5decf94 c1061040 fffffff7 0805ffbc 00000000 c6b6a780 c1061295 0805ffbc
    00000000 00000400 00000000 00000004 0805ffbc 4588eff4 c5dec000 c10026ba
    00000004 0805ffbc 00000400 0805ffbc 4588eff4 bfdc6c70 000000dc 0000007b
    Call Trace:
    [] filldir64+0x0/0xc5
    [] sys_getdents64+0x63/0xa5
    [] sysenter_past_esp+0x5f/0x85
    =======================
    Code: 49 83 78 18 00 74 43 8d 6b 74 bf fe ff ff ff 89 e8 e8 b8 c0 12 00 f6 83 2c 01 00 00 10 75 22 8b 5e 10 8b 4c 24 04 89 f0 8b 14 24 53 18 f6 46 1a 04 89 c7 75 0b 8b 56 0c 8b 46 08 e8 c8 66 00
    EIP: [] vfs_readdir+0x47/0x74 SS:ESP 0068:c5decf78

    hch: "Nice, getting rid of this is a very good step formwards.
    Unfortunately we have another copy of this junk in
    security/selinux/selinuxfs.c:sel_remove_entries() which would need the
    same treatment."

    Signed-off-by: Alexey Dobriyan
    Acked-by: Christoph Hellwig
    Cc: Al Viro
    Cc: Stephen Smalley
    Cc: James Morris
    Cc: "Eric W. Biederman"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • On some systems the number of resources(IO,MEM) returnedy by PNP device is
    greater than the PNP constant, for example motherboard devices. It brings
    that some resources can't be reserved and resource confilicts. This will
    cause PCI resources are assigned wrongly in some systems, and cause hang.
    This is a regression since we deleted ACPI motherboard driver and use PNP
    system driver.

    [akpm@linux-foundation.org: fix text and coding-style a bit]
    Signed-off-by: Li Shaohua
    Signed-off-by: Zhao Yakui
    Cc: Bjorn Helgaas
    Cc: Thomas Renninger
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zhao Yakui
     
  • _PAGE_PCD maps a page with caching disabled, which is typically used for
    mapping harware registers. Xen never allows it to be set on a mapping, and
    unprivileged guests never need it since they can't see the real underlying
    hardware. However, some uncached mappings are made early when probing the
    (non-existent) APIC, and its OK to mask off the PCD flag in these cases.

    This became necessary because Xen started checking for this bit, rather
    than silently masking it off.

    Signed-off-by: Jeremy Fitzhardinge
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeremy Fitzhardinge
     
  • include/asm-um/arch points to the non-existed include/asm-i386 directory.

    Signed-off-by: WANG Cong
    Cc: Jeff Dike
    Cc: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    WANG Cong
     
  • Ordinarily the size of a pageblock is determined at compile-time based on the
    hugepage size. On PPC64, the hugepage size is determined at runtime based on
    what is supported by the machine. With legacy machines such as iSeries that
    do not support hugepages, HPAGE_SHIFT is 0. This results in pageblock_order
    being set to -PAGE_SHIFT and a crash results shortly afterwards.

    This patch adds a function to select a sensible value for pageblock order by
    default when HUGETLB_PAGE_SIZE_VARIABLE is set. It checks that HPAGE_SHIFT
    is a sensible value before using the hugepage size; if it is not MAX_ORDER-1
    is used.

    This is a fix for 2.6.24.

    Credit goes to Stephen Rothwell for identifying the bug and testing candidate
    patches. Additional credit goes to Andy Whitcroft for spotting a problem
    with respects to IA-64 before releasing. Additional credit to David Gibson
    for testing with the libhugetlbfs test suite.

    Signed-off-by: Mel Gorman
    Tested-by: Stephen Rothwell
    Cc: Benjamin Herrenschmidt
    Acked-by: Paul Mackerras
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • - Limit video memory size to avoid crossing a 256 MiB boundary in IOIF space.
    - Pass the actual amount of video memory used to lv1_gpu_memory_allocate().

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     
  • - vuart.ko -> ps3-vuart.ko
    - sys-manager.ko -> ps3-sys-manager.ko

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     
  • Make the atmel_spi driver label GPIOs according to the device for which
    they're acting as a chipselect. This way the debugfs dump of gpio state is
    more informative.

    Signed-off-by: David Brownell
    Cc: Haavard Skinnemoen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell