19 Feb, 2009

5 commits

  • Currently seq_read assumes that the offset passed to it is always the
    offset it passed to user space. In the case pread this assumption is
    broken and we do the wrong thing when presented with pread.

    To solve this I introduce an offset cache inside of struct seq_file so we
    know where our logical file position is. Then in seq_read if we try to
    read from another offset we reset our data structures and attempt to go to
    the offset user space wanted.

    [akpm@linux-foundation.org: restore FMODE_PWRITE]
    [pjt@google.com: seq_open needs its fmode opened up to take advantage of this]
    Signed-off-by: Eric Biederman
    Cc: Alexey Dobriyan
    Cc: Al Viro
    Cc: Paul Turner
    Cc: [2.6.25.x, 2.6.26.x, 2.6.27.x, 2.6.28.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Biederman
     
  • Separate FMODE_PREAD and FMODE_PWRITE into separate flags to reflect the
    reality that the read and write paths may have independent restrictions.

    A git grep verifies that these flags are always cleared together so this
    new behavior will only apply to interfaces that change to clear flags
    individually.

    This is required for "seq_file: properly cope with pread", a post-2.6.25
    regression fix.

    [akpm@linux-foundation.org: add comment]
    Signed-off-by: Paul Turner
    Cc: Eric Biederman
    Cc: Alexey Dobriyan
    Cc: Al Viro
    Cc: [2.6.25.x, 2.6.26.x, 2.6.27.x, 2.6.28.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul Turner
     
  • The css_set hash table was introduced in 2.6.26, so update the
    documentation accordingly.

    Signed-off-by: Li Zefan
    Acked-by: Paul Menage
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Li Zefan
     
  • The Welland ME-747K-SI AoE target generates unsolicited AoE responses that
    are marked as vendor extensions. Instead of ignoring these packets, the
    aoe driver was generating kernel messages for each unrecognized response
    received. This patch corrects the behavior.

    Signed-off-by: Ed Cashin
    Reported-by:
    Tested-by:
    Cc:
    Cc: Alex Buell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ed Cashin
     
  • We have get_vm_area_caller() and __get_vm_area() but not
    __get_vm_area_caller()

    On powerpc, I use __get_vm_area() to separate the ranges of addresses
    given to vmalloc vs. ioremap (various good reasons for that) so in order
    to be able to implement the new caller tracking in /proc/vmallocinfo, I
    need a "_caller" variant of it.

    (akpm: needed for ongoing powerpc development, so merge it early)

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Benjamin Herrenschmidt
    Reviewed-by: KOSAKI Motohiro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Benjamin Herrenschmidt
     

18 Feb, 2009

28 commits


17 Feb, 2009

7 commits

  • The new v4l2_subdev_call used s_fmt instead of g_fmt.

    Thanks-to: Andy Walls
    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Hans Verkuil
     
  • The video_ioctl2 conversion of ivtv in kernel 2.6.27 introduced a bug
    causing decoder commands to crash. The decoder commands should have been
    handled from the video_ioctl2 default handler, ensuring correct mapping
    of the argument between user and kernel space. Unfortunately they ended
    up before the video_ioctl2 call, causing random crashes.

    Thanks to hannes@linus.priv.at for testing and helping me track down the
    cause!

    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Hans Verkuil
     
  • If a device using the gspca framework is unplugged while it is still streaming
    then the call that is used to free the URBs that have been allocated occurs
    after the pointer it uses becomes invalid at the end of gspca_disconnect.
    Make another cleanup call in gspca_disconnect while the pointer is still
    valid (multiple calls are OK as destroy_urbs checks for pointers already
    being NULL.

    Signed-off-by: Adam Baker
    Signed-off-by: Jean-Francois Moine
    Signed-off-by: Mauro Carvalho Chehab

    Adam Baker
     
  • On Mon, 02 Feb 2009, Hartmut wrote:

    This change set is wrong. The affected functions cannot be called from
    an interrupt context, because they may process large buffers. In this
    case, interrupts are disabled for a long time. Functions, like
    dvb_dmx_swfilter_packets(), could be called only from a tasklet.

    This change set does hide some strong design bugs in dm1105.c and
    au0828-dvb.c.

    Please revert this change set and do fix the bugs in dm1105.c and
    au0828-dvb.c (and other files).

    On Sun, 15 Feb 2009, Oliver Endriss wrote:

    This changeset _must_ be reverted! It breaks all kernels since 2.6.27
    for applications which use DVB and require a low interrupt latency.

    It is a very bad idea to call the demuxer to process data buffers with
    interrupts disabled!

    On Mon, 16 Feb 2009, Trent Piepho wrote:

    I agree, this is bad. The demuxer is far too much work to be done with
    IRQs off. IMHO, even doing it under a spin-lock is excessive. It should
    be a mutex. Drivers should use a work-queue to feed the demuxer.

    Thank you for testing this changeset and discovering the issues on it.

    Cc: Trent Piepho
    Cc: Hartmut
    Cc: Oliver Endriss
    Cc: Andreas Oberritter
    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • This patch closes one of my todos that was since long on my list.
    Some people reported clicks and glitches in the audio stream,
    correlated to the LED color changing cycle.
    Thanks to Rick Bronson .

    Signed-off-by: Tobias Lorenz
    Signed-off-by: Mauro Carvalho Chehab

    Tobias Lorenz
     
  • Thanks to Bob Ross
    - correction of stereo detection/setting
    - correction of signal strength indicator scaling

    Signed-off-by: Tobias Lorenz
    Signed-off-by: Mauro Carvalho Chehab

    Tobias Lorenz
     
  • As reported by David Engel , ATSC115 doesn't work
    fine with mythtv. This software opens both analog and dvb interfaces of
    saa7134.

    What happens is that some tuner commands are going to the wrong place,
    as shown at the logs:

    Feb 12 20:37:48 opus kernel: tuner-simple 1-0061: using tuner params #0 (ntsc)
    Feb 12 20:37:48 opus kernel: tuner-simple 1-0061: freq = 67.25 (1076), range = 0, config = 0xce, cb = 0x01
    Feb 12 20:37:48 opus kernel: tuner-simple 1-0061: Freq= 67.25 MHz, V_IF=45.75 MHz, Offset=0.00 MHz, div=1808
    Feb 12 20:37:48 opus kernel: tuner 1-0061: tv freq set to 67.25
    Feb 12 20:37:48 opus kernel: tuner-simple 1-000a: using tuner params #0 (ntsc)
    Feb 12 20:37:48 opus kernel: tuner-simple 1-000a: freq = 67.25 (1076), range = 0, config = 0xce, cb = 0x01
    Feb 12 20:37:48 opus kernel: tuner-simple 1-000a: Freq= 67.25 MHz, V_IF=45.75 MHz, Offset=0.00 MHz, div=1808
    Feb 12 20:37:48 opus kernel: tuner-simple 1-000a: tv 0x07 0x10 0xce 0x01
    Feb 12 20:37:48 opus kernel: tuner-simple 1-0061: tv 0x07 0x10 0xce 0x01

    This happens due to a hack at TUV1236D analog setup, where it replaces
    tuner address, at 0x61 for 0x0a, in order to save a few memory bytes.

    The code assumes that nobody else would try to access the tuner during
    that setup, but the point is that there's no lock to protect such
    access. So, this opens the possibility of race conditions to happen.

    Instead of hacking tuner address, this patch uses a temporary var with
    the proper tuner value to be used during the setup. This should save
    the issue, although we should consider to write some analog/digital
    lock at saa7134 driver.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab