31 Mar, 2009

1 commit

  • Setting ->owner as done currently (pde->owner = THIS_MODULE) is racy
    as correctly noted at bug #12454. Someone can lookup entry with NULL
    ->owner, thus not pinning enything, and release it later resulting
    in module refcount underflow.

    We can keep ->owner and supply it at registration time like ->proc_fops
    and ->data.

    But this leaves ->owner as easy-manipulative field (just one C assignment)
    and somebody will forget to unpin previous/pin current module when
    switching ->owner. ->proc_fops is declared as "const" which should give
    some thoughts.

    ->read_proc/->write_proc were just fixed to not require ->owner for
    protection.

    rmmod'ed directories will be empty and return "." and ".." -- no harm.
    And directories with tricky enough readdir and lookup shouldn't be modular.
    We definitely don't want such modular code.

    Removing ->owner will also make PDE smaller.

    So, let's nuke it.

    Kudos to Jeff Layton for reminding about this, let's say, oversight.

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

    Signed-off-by: Alexey Dobriyan

    Alexey Dobriyan
     

13 Mar, 2009

1 commit

  • Convert the PS3 Video RAM Storage Driver from an MTD driver to a plain block
    device driver.

    The ps3vram driver exposes unused video RAM on the PS3 as a block device
    suitable for storage or swap. Fast data transfer is achieved using a local
    cache in system RAM and DMA transfers via the GPU.

    The new driver is ca. 50% faster for reading, and ca. 10% for writing.

    Signed-off-by: Geert Uytterhoeven
    Acked-by: Geoff Levand
    Signed-off-by: Benjamin Herrenschmidt

    Geert Uytterhoeven