30 Apr, 2007

27 commits

  • Shrinks object file size a little bit.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Everytime when eth1394 or a libraw1394 client updates the configuration
    ROM, a certain sysfs attribute cannot be added since it already exists.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • This is a coding style touch-up for ieee1394's handle_incoming_packet().

    A preprocessor macro contained hardwired variable names and, even worse,
    the 'break' keyword. This macro is now unrolled and removed.

    Also, all 'break's which had the effect of a return are replaced by
    return. And a FIXME comment is brought up to date.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • alpha:

    drivers/ieee1394/iso.c: In function 'hpsb_iso_xmit_sync':
    drivers/ieee1394/iso.c:440: error: invalid use of undefined type 'struct task_struct'
    drivers/ieee1394/iso.c:440: error: 'TASK_INTERRUPTIBLE' undeclared (first use in this function)
    drivers/ieee1394/iso.c:440: error: (Each undeclared identifier is reported only once
    drivers/ieee1394/iso.c:440: error: for each function it appears in.)
    drivers/ieee1394/iso.c:440: warning: implicit declaration of function 'signal_pending'
    drivers/ieee1394/iso.c:440: error: invalid use of undefined type 'struct task_struct'
    drivers/ieee1394/iso.c:440: warning: implicit declaration of function 'schedule'
    drivers/ieee1394/iso.c: In function 'hpsb_iso_wake':
    drivers/ieee1394/iso.c:562: error: 'TASK_INTERRUPTIBLE' undeclared (first use in this function)

    Signed-off-by: Andrew Morton
    Signed-off-by: Stefan Richter (brought into alphabetic order)

    Andrew Morton
     
  • Signed-off-by: Stefan Richter

    Stefan Richter
     
  • drivers/ieee1394/ieee1394_transactions.c fails for me if CONFIG_SMP=n

    gcc complains:
    CC drivers/ieee1394/ieee1394_transactions.o
    drivers/ieee1394/ieee1394_transactions.c: In function 'hpsb_get_tlabel':
    drivers/ieee1394/ieee1394_transactions.c:183: error:
    'TASK_INTERRUPTIBLE' undeclared (first use in this function)
    drivers/ieee1394/ieee1394_transactions.c:183: error: (Each undeclared
    identifier is reported only once

    Signed-off-by: Andrew Morton
    Signed-off-by: Stefan Richter (added comment)

    Torsten Kaiser
     
  • Fix printk format string:
    drivers/ieee1394/ieee1394_core.c:702: warning: format '%d' expects type 'int', but argument 2 has type 'size_t'

    Signed-off-by: Randy Dunlap
    Signed-off-by: Stefan Richter

    Randy Dunlap
     
  • This considerably reduces the memory requirements for a packet and
    eliminates ieee1394's dependency on CONFIG_NET.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • This will point out firmware bugs.

    I tested with 11 SBP-2 devices and one OS X PC and got these errors from
    two old CD-RWs only.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Code beneath two labels called "fail" is actually also reached in case
    of success.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • We want bugs to show themselves.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Make unnecessarily generic code specific and thus simpler.
    Shrink a lookup table from 128 to 16 bytes.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Whitespace, line breaks, braces...

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • The biggest chunk ever allocated by CSR1212_MALLOC is 1024 Bytes +
    sizeof(struct csr1212_csr_rom_cache) big. Most of the time much
    smaller data structures are allocated. Therefore vmalloc is a waste.

    The one exception is csr1212_append_new_cache() which is called to
    append a chunk of CSR1212_EXTENDED_ROM_SIZE + sizeof(struct
    csr1212_csr_rom_cache) if the currently allocated ROM cache is too
    small. CSR1212_EXTENDED_ROM_SIZE is generously defined as 256 kBytes.
    In SVN commit 1220, Steve Kinneberg lowered this to 2 kBytes in the
    config_rom_2.4 branch. This same commit also switched CSR1212_MALLOC
    from kmalloc to vmalloc in the SVN trunk branch:

    > r1220 | kberg | 2004-05-31 01:51:44 +0200 (Mon, 31 May 2004) | 13 lines
    >
    > CSR1212 Extended ROM bug fixes:
    > trunk line changes:
    > - Use vmalloc instead of kmalloc
    > - Change delayed_reset_bus() to operate in a work_queue instead of a
    > timer interrupt.
    > - Fix hpsb_allocate_and_register_addrspace() to not allocate space
    > on top of already allocated space.
    > - Fix problems in csr1212.c filling ConfigROM images when extend
    > ROMs are present.
    > config-rom-2.4 changes:
    > - Changed extended rom allocation from 256K to 8K.
    (It was actually 2 kB, not 8 kB.)
    > - Fix hpsb_allocate_and_register_addrspace() to not allocate space
    > on top of already allocated space.
    > - Fix problems in csr1212.c filling ConfigROM images when extend
    > ROMs are present.

    I am now setting CSR1212_EXTENDED_ROM_SIZE to 2 kB minus the overhead of
    struct csr1212_csr_rom_cache. Note, this code path is not used by the
    in-kernel drivers though. raw1394 could trigger it, but the respective
    libraw1394 functions don't exist yet.

    Furthermore, userspace programs can replace the entire local ROM via
    raw1394. If kmalloc does not fulfill their needs --- well, tough luck.
    I decree that nobody needs such huge extended ROMs. (Extended ROMs are
    defined by IEEE 1212 clause 7.7.18. The spec does not impose
    practically relevant restrictions on the size of extended ROM chunks.)

    Another potentially demanding use of CSR1212_MALLOC is if external
    FireWire devices come with Extended ROM entries. If they are too big
    for kmalloc (or have been too big for vmalloc) we just fail to read
    their ROM. This is quite unlikely though, to my knowledge.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • This small reorganization of public csr1212 functions saves one
    exported symbol and a few bytes in the driver modules.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • return -EINVAL becomes BUG_ON in checks of function call parameters.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Use u8, u32 etc. instead of u_int8_t, csr1212_quad_t etc.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • csr1212 was written to be compiled either as part of the ieee1394 kernel
    driver or of an anticipated IEEE 1212 userspace library. We now drop
    support for the latter. The costs in terms of code footprint and depth
    of abstraction are not countered by any actual benefit.

    Also remove some obsolete #includes.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Delete unused code.
    Make some extern functions static.
    Remove superfluous inline keywords.
    Move private definitions from csr1212.h to csr1212.c.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Signed-off-by: Stefan Richter

    Stefan Richter
     
  • drivers/ieee1394/sbp2.c: In function 'sbp2util_access_timeout':
    drivers/ieee1394/sbp2.c:399: error: 'TASK_INTERRUPTIBLE' undeclared (first use in this function)
    drivers/ieee1394/sbp2.c:399: error: (Each undeclared identifier is reported only once
    drivers/ieee1394/sbp2.c:399: error: for each function it appears in.)
    drivers/ieee1394/sbp2.c:399: warning: implicit declaration of function 'signal_pending'
    drivers/ieee1394/sbp2.c:399: warning: implicit declaration of function 'schedule_timeout'
    drivers/ieee1394/sbp2.c: In function 'sbp2_prep_command_orb_sg':
    drivers/ieee1394/sbp2.c:1438: warning: implicit declaration of function 'page_address'
    drivers/ieee1394/sbp2.c:1438: warning: passing argument 2 of 'dma_map_single' makes pointer from integer without a cast
    drivers/ieee1394/sbp2.c: In function 'sbp2_handle_status_write':
    drivers/ieee1394/sbp2.c:1842: error: 'TASK_INTERRUPTIBLE' undeclared (first use in this function)

    Possibly due to changes in -mm, but this file should explicitly include the
    headers for the stuff it uses.

    Signed-off-by: Andrew Morton
    Signed-off-by: Stefan Richter (brought into alphabetic order)

    Andrew Morton
     
  • When the command ORB pool is created, the ORB list won't be accessed
    concurrently. Therefore we don't have to take the spinlock there.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Unlike the name suggests, "cmd->scatter_gather_element" holds only the
    s/g table, not the actual s/g elements. Since the table is only read
    but never written by the device, DMA_BIDIRECTIONAL can be replaced by
    DMA_TO_DEVICE which may be cheaper on some architectures.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • In order to use OHCI-1394 physical DMA, all s/g elements, s/g tables,
    ORBs, and response buffers have to reside within the first 4 GB of the
    FireWire controller's physical address space. Set the correct mask for
    DMA mappings.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • The members "dma_addr_t command_orb_dma" and "dma_addr_t sge_dma" of
    sbp2.h::sbp2_command_info do not have to be aligned themselves --- only
    the memory which they point to has to be.

    The member "struct sbp2_command_orb command_orb" has to be aligned on
    4 bytes boundary which is guaranteed because it contains u32 members.

    The member "struct sbp2_unrestricted_page_table scatter_gather_element",
    i.e. the SBP-2 s/g table, has to be aligned on 8 bytes boundary
    according to the SBP-2 spec. This is not a requirement for FireWire
    controllers but could be expected by SBP-2 targets.

    I see no need to align the members command_orb and
    scatter_gather_element on CPU cacheline boundaries. It could have
    performance benefits, but on the other hand sbp2 has a somewhat wasteful
    allocation scheme which should be optimized first before further tweaks
    like cacheline alignments. (E.g. don't always allocate SG_ALL s/g table
    elements.)

    Note, before as well as after the patch, the code relies on the
    assumption that memory alignment in the virtual address space is
    preserved in the physical address space after DMA mapping.

    Signed-off-by: Stefan Richter

    Stefan Richter
     

28 Apr, 2007

13 commits

  • * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6:
    sis900: Allocate rx replacement buffer before rx operation
    usb-net/pegasus: simplify carrier detection

    Linus Torvalds
     
  • Just found a hole in my last patch. It was reported to me that shortly after we
    integrated this patch. The report was of an oops that took place inside of
    netif_rx when using the sis900 driver. Looking at my origional patch I noted
    that there was a spot between the new skb_alloc and the refill_rx_ring label
    where skb got reassigned to the pointer currently held in the rx_ring for the
    purposes of receiveing the frame. The result of this is however that the buffer
    that gets passed to netif_rx (if it is called), then gets placed right back into
    the rx_ring. So if you receive frames fast enough the skb being processed by
    the network stack can get corrupted. The reporter is testing out the fix I've
    written for this below (I'm not near my hardware at the moment to test myself),
    but I wanted to post it for review ASAP. I'll post test results when I hear
    them, but I think this is a pretty straightforward fix. It just uses a separate
    pointer to do the rx operation, so that we don't improperly reassign the pointer
    that we use to refill the rx ring.

    Signed-off-by: Neil Horman
    Signed-off-by: Jeff Garzik

    Neil Horman
     
  • Simplify pegasus carrier detection; rely only on the periodic MII
    polling. Reverts pieces of c43c49bd61fdb9bb085ddafcaadb17d06f95ec43.

    Signed-off-by: Dan Williams
    Signed-off-by: Jeff Garzik

    Dan Williams
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
    [SCSI] esp_scsi.c: Fix compilation.

    Linus Torvalds
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
    [NET]: Fix networking compilation errors
    [AF_RXRPC/AFS]: Arch-specific fixes.
    [AFS]: Fix VLocation record update wakeup
    [NET]: Revert sk_buff walker cleanups.

    Linus Torvalds
     
  • * git://git.infradead.org/mtd-2.6: (46 commits)
    [MTD] [MAPS] drivers/mtd/maps/ck804xrom.c: convert pci_module_init()
    [MTD] [NAND] CM-x270 MTD driver
    [MTD] [NAND] Wrong calculation of page number in nand_block_bad()
    [MTD] [MAPS] fix plat-ram printk format
    [JFFS2] Fix compr_rubin.c build after include file elimination.
    [JFFS2] Handle inodes with only a single metadata node with non-zero isize
    [JFFS2] Tidy up licensing/copyright boilerplate.
    [MTD] [OneNAND] Exit loop only when column start with 0
    [MTD] [OneNAND] Fix access the past of the real oobfree array
    [MTD] [OneNAND] Update Samsung OneNAND official URL
    [JFFS2] Better fix for all-zero node headers
    [JFFS2] Improve read_inode memory usage, v2.
    [JFFS2] Improve failure mode if inode checking leaves unchecked space.
    [JFFS2] Fix cross-endian build.
    [MTD] Finish conversion mtd_blkdevs to use the kthread API
    [JFFS2] Obsolete dirent nodes immediately on unlink, where possible.
    Use menuconfig objects: MTD
    [MTD] mtd_blkdevs: Convert to use the kthread API
    [MTD] Fix fwh_lock locking
    [JFFS2] Speed up mount for directly-mapped NOR flash
    ...

    Linus Torvalds
     
  • This patch converts the pci_module_init() usage to pci_register_driver().

    It's currently #if 0'ed, but still not a bad idea to change it.

    Signed-off-by: Adrian Bunk
    Signed-off-by: David Woodhouse

    Adrian Bunk
     
  • Fix miscellaneous networking compilation errors.

    (*) Export ktime_add_ns() for modules.

    (*) wext_proc_init() should have an ANSI declaration.

    Signed-off-by: David Howells
    Signed-off-by: David S. Miller

    David Howells
     
  • Fixes for various arch compilation problems:

    (*) Missing module exports.

    (*) Variable name collision when rxkad and af_rxrpc both built in
    (rxrpc_debug).

    (*) Large constant representation problem (AFS_UUID_TO_UNIX_TIME).

    (*) Configuration dependencies.

    (*) printk() format warnings.

    Signed-off-by: David Howells
    Signed-off-by: David S. Miller

    David Howells
     
  • Fix the wakeup transitions after a VLocation record update completes
    one way or another. This builds on Dave Miller's partial fix.

    Also move wakeups outside the spinlocked sections.

    Signed-off-by: David Howells
    Signed-off-by: David S. Miller

    David Howells
     
  • This reverts eefa3906283a2b60a6d02a2cda593a7d7d7946c5

    The simplification made in that change works with the assumption that
    the 'offset' parameter to these functions is always positive or zero,
    which is not true. It can be and often is negative in order to access
    SKB header values in front of skb->data.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • irqreturn.h for irqreturn_t and dma_addr_t being u128 warnings ;-)

    Signed-off-by: Alexey Dobriyan
    Signed-off-by: David S. Miller

    Alexey Dobriyan
     
  • This patch provides MTD support for NAND flash devices on CM-x270 modules.

    Signed-off-by: Mike Rapoport
    Signed-off-by: David Woodhouse

    Mike Rapoport