12 Dec, 2009

2 commits


10 Dec, 2009

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (42 commits)
    tree-wide: fix misspelling of "definition" in comments
    reiserfs: fix misspelling of "journaled"
    doc: Fix a typo in slub.txt.
    inotify: remove superfluous return code check
    hdlc: spelling fix in find_pvc() comment
    doc: fix regulator docs cut-and-pasteism
    mtd: Fix comment in Kconfig
    doc: Fix IRQ chip docs
    tree-wide: fix assorted typos all over the place
    drivers/ata/libata-sff.c: comment spelling fixes
    fix typos/grammos in Documentation/edac.txt
    sysctl: add missing comments
    fs/debugfs/inode.c: fix comment typos
    sgivwfb: Make use of ARRAY_SIZE.
    sky2: fix sky2_link_down copy/paste comment error
    tree-wide: fix typos "couter" -> "counter"
    tree-wide: fix typos "offest" -> "offset"
    fix kerneldoc for set_irq_msi()
    spidev: fix double "of of" in comment
    comment typo fix: sybsystem -> subsystem
    ...

    Linus Torvalds
     

09 Dec, 2009

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:
    ieee1394: Use hweight32
    firewire: cdev: reduce stack usage by ioctl_dispatch
    firewire: ohci: 0 may be a valid DMA address
    firewire: core: WARN on wrong usage of core transaction functions
    firewire: core: optimize Topology Map creation
    firewire: core: clarify generate_config_rom usage
    firewire: optimize config ROM creation
    firewire: cdev: normalize variable names
    firewire: normalize style of queue_work wrappers
    firewire: cdev: fix memory leak in an error path

    Linus Torvalds
     

08 Dec, 2009

1 commit


04 Dec, 2009

1 commit

  • That is "success", "unknown", "through", "performance", "[re|un]mapping"
    , "access", "default", "reasonable", "[con]currently", "temperature"
    , "channel", "[un]used", "application", "example","hierarchy", "therefore"
    , "[over|under]flow", "contiguous", "threshold", "enough" and others.

    Signed-off-by: André Goddard Rosa
    Signed-off-by: Jiri Kosina

    André Goddard Rosa
     

01 Dec, 2009

1 commit


21 Nov, 2009

1 commit

  • Here is the final set of patches I used to get ffado to work with the
    new firewire stack. With these patches, I was able to start ardour
    and record from and playback to my PreSonus Inspire1394 from a
    (mostly) Fedora 12 system.

    Signed-off-by: Jay Fenlason

    Until now, firewire-ohci exposed only the transmit cycle of the last
    transmitted packet at each isochronous transmit complete event. This
    made it impossible for FFADO (FireWire audio drivers in userspace) to
    synchronize audio-out streams. The fix is to store the timestamp of
    each packet in the iso xmit event. As a bonus, the transfer status is
    stored too.

    Signed-off-by: Stefan Richter

    Jay Fenlason
     

19 Nov, 2009

1 commit

  • Calling the START_ISO ioctl with a nonnegative cycle paramater has
    never worked. Last night I got around to figuring out why. Most of
    this patch is a big comment explaining why we enable an interrupt
    source then don't actually do anything when we get one. As the
    comment says, we should do more, but we don't have a way to tell
    userspace what happened. . .

    Signed-off-by: Jay Fenlason
    Signed-off-by: Stefan Richter (edited comment)

    Jay Fenlason
     

31 Oct, 2009

3 commits

  • Replace a hardcoded buffer size by a sizeof union {}. This shrinks the
    stack-allocated ioctl argument buffer from 256 to 40 bytes. (This is
    not much, but subsequent stack usage particularly by the queue_iso ioctl
    handler adds up.)

    The new form is also easier to keep up to date than a hardcoded size if
    more ioctls are added.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • I was told that there are obscure architectures with non-coherent DMA
    which may DMA-map to bus address 0. We shall not use 0 as a magic
    number of uninitialized bus address variables.

    The packet->payload_length > 0 test cannot be used either (except in
    at_context_queue_packet) because local requests are not DMA-mapped
    regardless of payload_length. Hence add a state flag to struct
    fw_packet.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • In the code path which creates request packets, clearly mark a switch
    branch which must never be reached with a WARN.

    In the code path which creates response packets, replace a BUG by a
    friendlier to debug WARN.

    Signed-off-by: Stefan Richter

    Stefan Richter
     

15 Oct, 2009

8 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:
    firewire: sbp2: provide fallback if mgt_ORB_timeout is missing
    ieee1394: add documentation entry to MAINTAINERS
    ieee1394: update URLs in debugging-via-ohci1394.txt

    Linus Torvalds
     
  • The Topology Map of the local node was created in CPU byte order,
    then a temporary big endian copy was created to compute the CRC,
    and when a read request to the Topology Map arrived it had to be
    converted to big endian byte order again.

    We now generate it in big endian byte order in the first place.
    This also rids us of 1000 bytes stack usage in tasklet context.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Move the static config ROM buffer into the scope of the two callers of
    generate_config_rom(). That way the ROM length can be passed over as
    return value rather than through a pointer argument.

    It also becomes more obvious that accesses to the config ROM buffer have
    to be serialized and how this is accomplished. And firewire-core.ko
    shrinks a bit as well.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • The config ROM image of the local node was created in CPU byte order,
    then a temporary big endian copy was created to compute the CRC, and
    finally the card driver created its own big endian copy.

    We now generate it in big endian byte order in the first place to avoid
    one byte order conversion and the temporary on-stack copy of the ROM
    image (1000 bytes stack usage in process context). Furthermore, two
    1000 bytes memset()s are replaced by one 1000 bytes - ROM length sized
    memset.

    The trivial fw_memcpy_{from,to}_be32() helpers are now superfluous and
    removed. The newly added __compute_block_crc() function will be folded
    into fw_compute_block_crc() in a subsequent change.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Unify some names:
    - "e" for pointers to subtypes of struct event,
    - "event" for struct members and pointers to struct event,
    - "r" for pointers to subtypes of struct client_resource,
    - "resource" for struct members and pointers to struct client_resource,
    - other names for struct members and pointers to other types.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • A few stylistic changes to unify some code patterns in the subsystem:

    - The similar queue_delayed_work helpers fw_schedule_bm_work,
    schedule_iso_resource, and sbp2_queue_work now have the same call
    convention.
    - Two conditional calls of schedule_iso_resource are factored into
    another small helper.
    - An sbp2_target_get helper is added as counterpart to
    sbp2_target_put.

    Object size of firewire-core is decreased a little bit, object size of
    firewire-sbp2 remains unchanged.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • The Unit_Characteristics entry of an SBP-2 unit directory is not
    mandatory as far as I can tell. If it is missing, we would probably
    fail to log in into the target because firewire-sbp2 would not wait for
    status after it sent the login request.

    The fix moves the cleanup of tgt->mgt_orb_timeout into a place where it
    is executed exactly once before login, rather than 0..n times depending
    on the target's config ROM. With targets with one or more
    Unit_Characteristics entries, the result is the same as before.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • If copy_from_user in an FW_CDEV_IOC_SEND_RESPONSE ioctl failed, an
    inbound_transaction_resource instance is no longer referenced and needs
    to be freed.

    Signed-off-by: Stefan Richter

    Stefan Richter
     

05 Oct, 2009

1 commit


24 Sep, 2009

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:
    ieee1394: sbp2: remove a workaround for Momobay FX-3A
    firewire: sbp2: remove a workaround for Momobay FX-3A
    firewire: sbp2: fix status reception
    firewire: core: fix topology map response handler
    firewire: core: fix race with parallel PCI device probe
    firewire: core: header file cleanup
    firewire: ohci: fix Self ID Count register mask (safeguard against buffer overflow)
    ieee1394: raw1394: Do not leak memory on failed trylock.

    Linus Torvalds
     

16 Sep, 2009

1 commit


15 Sep, 2009

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1623 commits)
    netxen: update copyright
    netxen: fix tx timeout recovery
    netxen: fix file firmware leak
    netxen: improve pci memory access
    netxen: change firmware write size
    tg3: Fix return ring size breakage
    netxen: build fix for INET=n
    cdc-phonet: autoconfigure Phonet address
    Phonet: back-end for autoconfigured addresses
    Phonet: fix netlink address dump error handling
    ipv6: Add IFA_F_DADFAILED flag
    net: Add DEVTYPE support for Ethernet based devices
    mv643xx_eth.c: remove unused txq_set_wrr()
    ucc_geth: Fix hangs after switching from full to half duplex
    ucc_geth: Rearrange some code to avoid forward declarations
    phy/marvell: Make non-aneg speed/duplex forcing work for 88E1111 PHYs
    drivers/net/phy: introduce missing kfree
    drivers/net/wan: introduce missing kfree
    net: force bridge module(s) to be GPL
    Subject: [PATCH] appletalk: Fix skb leak when ipddp interface is not loaded
    ...

    Fixed up trivial conflicts:

    - arch/x86/include/asm/socket.h

    converted to in the x86 tree. The generic
    header has the same new #define's, so that works out fine.

    - drivers/net/tun.c

    fix conflict between 89f56d1e9 ("tun: reuse struct sock fields") that
    switched over to using 'tun->socket.sk' instead of the redundantly
    available (and thus removed) 'tun->sk', and 2b980dbd ("lsm: Add hooks
    to the TUN driver") which added a new 'tun->sk' use.

    Noted in 'next' by Stephen Rothwell.

    Linus Torvalds
     

12 Sep, 2009

6 commits

  • The inquiry delay does more harm than good in tests on a recent kernel.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Per SBP-2 clause 5.3, a target shall store 8...32 bytes of status
    information. Trailing zeros after the first 8 bytes don't need to be
    stored, they are implicit. Fix the status write handler to clear all
    unwritten status data.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • This register is 1 kBytes large. Adjust topology_map.length to prevent
    registration of other response handlers in this region and to make sure
    that we respond to requests to the upper half of the register.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • The config ROM buffer received from generate_config_rom is a globally
    shared static buffer. Extend the card_mutex protection in fw_add_card
    until after the config ROM was copied into the card driver's buffer.
    Otherwise, parallelized card driver probes may end up with ROM contents
    that were meant for a different card.

    firewire-ohci's card->driver->enable hook is safe to be called within
    the card_mutex. Furthermore, it is safe to reorder card_list update
    versus card enable, which simplifies the code a little.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • fw_card_get, fw_card_put, fw_card_release are currently not exported for
    use outside the firewire-core. Move their definitions/ declarations
    from the subsystem header file to the core header file.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • The selfIDSize field of Self ID Count is 9 bits wide, and we are only
    interested in the high 8 bits. Fix the mask accordingly. The
    previously too large mask didn't do damage though because the next few
    bits in the register are reserved and therefore zero with presently
    existing hardware.

    Also, check for the maximum possible self ID count of 252 (according to
    OHCI 1.1 clause 11.2 and IEEE 1394a-2000 clause 4.3.4.1, i.e. up to four
    self IDs of up to 63 nodes, even though IEEE 1394 up to edition 2008
    defines only up to three self IDs per node). More than 252 self IDs
    would only happen if the self ID receive DMA unit malfunctioned, which
    would likely be caught by other self ID buffer checks. However, check
    it early to be sure. More than 253 quadlets would overflow the Topology
    Map CSR.

    Reported-By: PaX Team
    Signed-off-by: Stefan Richter

    Stefan Richter
     

06 Sep, 2009

1 commit


05 Sep, 2009

4 commits

  • If a target writes invalid status (typically status of a command that
    already timed out), firewire-sbp2 attempts to put away an ORB that
    doesn't exist. https://bugzilla.redhat.com/show_bug.cgi?id=519772

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • In dual-buffer DMA mode, no video frames are ever received from R5C832
    by libdc1394. Fallback to packet-per-buffer DMA works reliably.
    http://thread.gmane.org/gmane.linux.kernel.firewire.devel/13393/focus=13476

    Reported-by: Jonathan Cameron
    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • An Agere FW643 OHCI 1.1 card works fine for video reception from one
    camera but fails early if receiving from two cameras. After a short
    while, no IR IRQ events occur and the context control register does not
    react anymore. This happens regardless whether both IR DMA contexts are
    dual-buffer or one is dual-buffer and the other packet-per-buffer.

    This can be worked around by disabling dual buffer DMA mode entirely.
    http://sourceforge.net/mailarchive/message.php?msg_name=4A7C0594.2020208%40gmail.com
    (Reported by Samuel Audet.)

    In another report (by Jonathan Cameron), an FW643 works OK with two
    cameras in dual buffer mode. Whether this is due to different chip
    revisions or different usage patterns (different video formats) is not
    yet clear. However, as far as the current capabilities of
    firewire-core's isochronous I/O interface are concerned, simply
    switching off dual-buffer on non-working and working FW643s alike is not
    a problem in practice. We only need to revisit this issue if we are
    going to enhance the interface, e.g. so that applications can explicitly
    choose modes.

    Reported-by: Samuel Audet
    Reported-by: Jonathan Cameron
    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • This fixes a regression due to post 2.6.30 commit "firewire: core: do
    not DMA-map stack addresses" 6fdc03709433ccc2005f0f593ae9d9dd04f7b485.

    As David Moore noted, a previously correct sizeof() expression became
    wrong since the commit changed its argument from an array to a pointer.
    This resulted in an oops in ohci_cancel_packet in the shared workqueue
    thread's context when an isochronous resource was to be freed.

    Reported-by: Jonathan Cameron
    Signed-off-by: Stefan Richter

    Stefan Richter
     

03 Sep, 2009

1 commit


02 Sep, 2009

1 commit


01 Sep, 2009

1 commit


07 Jul, 2009

1 commit


03 Jul, 2009

1 commit