01 Nov, 2011

1 commit

  • With module.h being implicitly everywhere via device.h, the absence
    of explicitly including something for EXPORT_SYMBOL went unnoticed.
    Since we are heading to fix things up and clean module.h from the
    device.h file, we need to explicitly include these files now.

    Use the lightweight version of the header that has just THIS_MODULE
    and EXPORT_SYMBOL variants.

    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     

27 Sep, 2011

1 commit

  • Report the number of dropped packets instead of zero
    when using the binary usbmon interface with tcpdump.

    # tcpdump -i usbmon1 -w dump
    tcpdump: listening on usbmon1, link-type USB_LINUX_MMAPPED (USB with padded Linux header), capture size 65535 bytes
    ^C2155 packets captured
    2155 packets received by filter
    1019 packets dropped by kernel

    Signed-off-by: Johannes Stezenbach
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Johannes Stezenbach
     

09 Jul, 2011

1 commit

  • Do not bail out with an error in mon_text_init() if debugfs is not
    available, instead just return 0 and let mon_init() go ahead with
    loading the binary API. Return -ENOMEM in case debugfs_create_dir()
    fails for other reasons. Later, it is enough to check for mon_dir
    not set.

    Signed-off-by: Tobias Klauser
    Signed-off-by: Pete Zaitcev
    Signed-off-by: Greg Kroah-Hartman

    Tobias Klauser
     

05 Feb, 2011

1 commit

  • This is based on a patch that Alan Stern wrote. It did the same simple
    thing in both text and binary cases. In the same time, Marton and I
    fixed the binary side properly, but this leaves the text to be fixed.
    It is not very important due to low maxium data size of text, but
    let's add it just for extra correctness.

    The pseudocode is too much to keep fixed up, and we have real code
    to be used as examples now, so let's drop it too.

    Signed-off-by: Pete Zaitcev
    Signed-off-by: Greg Kroah-Hartman

    Pete Zaitcev
     

17 Dec, 2010

1 commit

  • * usb-next: (132 commits)
    USB: uas: Use GFP_NOIO instead of GFP_KERNEL in I/O submission path
    USB: uas: Ensure we only bind to a UAS interface
    USB: uas: Rename sense pipe and sense urb to status pipe and status urb
    USB: uas: Use kzalloc instead of kmalloc
    USB: uas: Fix up the Sense IU
    usb: musb: core: kill unneeded #include's
    DA8xx: assign name to MUSB IRQ resource
    usb: gadget: g_ncm added
    usb: gadget: f_ncm.c added
    usb: gadget: u_ether: prepare for NCM
    usb: pch_udc: Fix setup transfers with data out
    usb: pch_udc: Fix compile error, warnings and checkpatch warnings
    usb: add ab8500 usb transceiver driver
    USB: gadget: Implement runtime PM for MSM bus glue driver
    USB: gadget: Implement runtime PM for ci13xxx gadget
    USB: gadget: Add USB controller driver for MSM SoC
    USB: gadget: Introduce ci13xxx_udc_driver struct
    USB: gadget: Initialize ci13xxx gadget device's coherent DMA mask
    USB: gadget: Fix "scheduling while atomic" bugs in ci13xxx_udc
    USB: gadget: Separate out PCI bus code from ci13xxx_udc
    ...

    Greg Kroah-Hartman
     

01 Dec, 2010

1 commit

  • Usually the usbmon returns the amount of data specified in
    urb->transfer_buffer_length for output submissions and urb->actual_length
    for input callbacks. However, for Isochronous input transfers, this is
    not enough, since the returned data buffer may contain "holes".

    One easy way to fix this is to use urb->transfer_buffer_length,
    but this often transfers a whole lot of unused data, so we find
    how much was actually used instead.

    Original patch by Márton Németh. See also kernel bug 22182.

    Signed-off-by: Pete Zaitcev
    Signed-off-by: Márton Németh
    Signed-off-by: Greg Kroah-Hartman

    Pete Zaitcev
     

18 Nov, 2010

1 commit


25 Oct, 2010

1 commit

  • * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)
    Update broken web addresses in arch directory.
    Update broken web addresses in the kernel.
    Revert "drivers/usb: Remove unnecessary return's from void functions" for musb gadget
    Revert "Fix typo: configuation => configuration" partially
    ida: document IDA_BITMAP_LONGS calculation
    ext2: fix a typo on comment in ext2/inode.c
    drivers/scsi: Remove unnecessary casts of private_data
    drivers/s390: Remove unnecessary casts of private_data
    net/sunrpc/rpc_pipe.c: Remove unnecessary casts of private_data
    drivers/infiniband: Remove unnecessary casts of private_data
    drivers/gpu/drm: Remove unnecessary casts of private_data
    kernel/pm_qos_params.c: Remove unnecessary casts of private_data
    fs/ecryptfs: Remove unnecessary casts of private_data
    fs/seq_file.c: Remove unnecessary casts of private_data
    arm: uengine.c: remove C99 comments
    arm: scoop.c: remove C99 comments
    Fix typo configue => configure in comments
    Fix typo: configuation => configuration
    Fix typo interrest[ing|ed] => interest[ing|ed]
    Fix various typos of valid in comments
    ...

    Fix up trivial conflicts in:
    drivers/char/ipmi/ipmi_si_intf.c
    drivers/usb/gadget/rndis.c
    net/irda/irnet/irnet_ppp.c

    Linus Torvalds
     

23 Oct, 2010

1 commit

  • For all modules, change -objs to -y; remove
    if-statements and replace with lists using the kbuild idiom; move
    flags to the top of the file; and fix alignment while trying to
    maintain the original scheme in each file.

    None of the dependencies are modified.

    Signed-off-by: matt mooney
    Acked-by: Sam Ravnborg
    Acked-by: Felipe Balbi
    Signed-off-by: Greg Kroah-Hartman

    matt mooney
     

11 Aug, 2010

3 commits


10 Aug, 2010

1 commit


24 May, 2010

1 commit

  • * 'bkl/ioctl' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing:
    uml: Pushdown the bkl from harddog_kern ioctl
    sunrpc: Pushdown the bkl from sunrpc cache ioctl
    sunrpc: Pushdown the bkl from ioctl
    autofs4: Pushdown the bkl from ioctl
    uml: Convert to unlocked_ioctls to remove implicit BKL
    ncpfs: BKL ioctl pushdown
    coda: Clean-up whitespace problems in pioctl.c
    coda: BKL ioctl pushdown
    drivers: Push down BKL into various drivers
    isdn: Push down BKL into ioctl functions
    scsi: Push down BKL into ioctl functions
    dvb: Push down BKL into ioctl functions
    smbfs: Push down BKL into ioctl function
    coda/psdev: Remove BKL from ioctl function
    um/mmapper: Remove BKL usage
    sn_hwperf: Kill BKL usage
    hfsplus: Push down BKL into ioctl function

    Linus Torvalds
     

21 May, 2010

3 commits

  • Change the type of the URB's 'sg' pointer from a usb_sg_request to
    a scatterlist. This allows drivers to submit scatter-gather lists
    without using the usb_sg_wait() interface. It has the added benefit
    of removing the typecasts that were added as part of patch as1368 (and
    slightly decreasing the number of pointer dereferences).

    Signed-off-by: Matthew Wilcox
    Reviewed-by: Alan Stern
    Tested-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Matthew Wilcox
     
  • This patch (as1368) fixes a rather obscure bug in usbmon: When tracing
    URBs sent by the scatter-gather library, it accesses the data buffers
    while they are still mapped for DMA.

    The solution is to move the mapping and unmapping out of the s-g
    library and into the usual place in hcd.c. This requires the addition
    of new URB flag bits to describe the kind of mapping needed, since we
    have to call dma_map_sg() if the HCD supports native scatter-gather
    operation and dma_map_page() if it doesn't. The nice thing about
    having the new flags is that they simplify the testing for unmapping.

    The patch removes the only caller of usb_buffer_[un]map_sg(), so those
    functions are #if'ed out. A later patch will remove them entirely.

    As a result of this change, urb->sg will be set in situations where
    it wasn't set previously. Hence the xhci and whci drivers are
    adjusted to test urb->num_sgs instead, which retains its original
    meaning and is nonzero only when the HCD has to handle a scatterlist.

    Finally, even when a submission error occurs we don't want to hand
    URBs to usbmon before they are unmapped. The submission path is
    rearranged so that map_urb_for_dma() is called only for non-root-hub
    URBs and unmap_urb_for_dma() is called immediately after a submission
    error. This simplifies the error handling.

    Signed-off-by: Alan Stern
    CC:
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • The usbcore headers: hcd.h and hub.h are shared between usbcore,
    HCDs and a couple of other drivers (e.g. USBIP modules).
    So, it makes sense to move them into a more public location and
    to cleanup dependency of those modules on kernel internal headers.
    This patch moves hcd.h from drivers/usb/core into include/linux/usb/

    Signed-of-by: Eric Lescouet
    Cc: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Eric Lescouet
     

17 May, 2010

1 commit

  • These are the last remaining device drivers using
    the ->ioctl file operation in the drivers directory
    (except from v4l drivers).

    [fweisbec: drop i8k pushdown as it has been done from
    procfs pushdown branch already]

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Frederic Weisbecker

    Arnd Bergmann
     

30 Mar, 2010

1 commit

  • …it slab.h inclusion from percpu.h

    percpu.h is included by sched.h and module.h and thus ends up being
    included when building most .c files. percpu.h includes slab.h which
    in turn includes gfp.h making everything defined by the two files
    universally available and complicating inclusion dependencies.

    percpu.h -> slab.h dependency is about to be removed. Prepare for
    this change by updating users of gfp and slab facilities include those
    headers directly instead of assuming availability. As this conversion
    needs to touch large number of source files, the following script is
    used as the basis of conversion.

    http://userweb.kernel.org/~tj/misc/slabh-sweep.py

    The script does the followings.

    * Scan files for gfp and slab usages and update includes such that
    only the necessary includes are there. ie. if only gfp is used,
    gfp.h, if slab is used, slab.h.

    * When the script inserts a new include, it looks at the include
    blocks and try to put the new include such that its order conforms
    to its surrounding. It's put in the include block which contains
    core kernel includes, in the same order that the rest are ordered -
    alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
    doesn't seem to be any matching order.

    * If the script can't find a place to put a new include (mostly
    because the file doesn't have fitting include block), it prints out
    an error message indicating which .h file needs to be added to the
    file.

    The conversion was done in the following steps.

    1. The initial automatic conversion of all .c files updated slightly
    over 4000 files, deleting around 700 includes and adding ~480 gfp.h
    and ~3000 slab.h inclusions. The script emitted errors for ~400
    files.

    2. Each error was manually checked. Some didn't need the inclusion,
    some needed manual addition while adding it to implementation .h or
    embedding .c file was more appropriate for others. This step added
    inclusions to around 150 files.

    3. The script was run again and the output was compared to the edits
    from #2 to make sure no file was left behind.

    4. Several build tests were done and a couple of problems were fixed.
    e.g. lib/decompress_*.c used malloc/free() wrappers around slab
    APIs requiring slab.h to be added manually.

    5. The script was run on all .h files but without automatically
    editing them as sprinkling gfp.h and slab.h inclusions around .h
    files could easily lead to inclusion dependency hell. Most gfp.h
    inclusion directives were ignored as stuff from gfp.h was usually
    wildly available and often used in preprocessor macros. Each
    slab.h inclusion directive was examined and added manually as
    necessary.

    6. percpu.h was updated not to include slab.h.

    7. Build test were done on the following configurations and failures
    were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
    distributed build env didn't work with gcov compiles) and a few
    more options had to be turned off depending on archs to make things
    build (like ipr on powerpc/64 which failed due to missing writeq).

    * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
    * powerpc and powerpc64 SMP allmodconfig
    * sparc and sparc64 SMP allmodconfig
    * ia64 SMP allmodconfig
    * s390 SMP allmodconfig
    * alpha SMP allmodconfig
    * um on x86_64 SMP allmodconfig

    8. percpu.h modifications were reverted so that it could be applied as
    a separate patch and serve as bisection point.

    Given the fact that I had only a couple of failures from tests on step
    6, I'm fairly confident about the coverage of this conversion patch.
    If there is a breakage, it's likely to be something in one of the arch
    headers which should be easily discoverable easily on most builds of
    the specific arch.

    Signed-off-by: Tejun Heo <tj@kernel.org>
    Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>

    Tejun Heo
     

03 Mar, 2010

2 commits

  • The code does not implement the comment, so timestamps for long traces
    become confusing instead of wrapping neatly as expected. This was actually
    observed. Fortunately for API being in debugfs, we can just fix this instead
    of staying bug-for-bug compatible. Double fortunately, the stable binary
    API is not affected.

    Signed-off-by: Pete Zaitcev
    Signed-off-by: Greg Kroah-Hartman

    Pete Zaitcev
     
  • Due to a simple oversight when bus zero was added, the text API fails to
    deliver the bus number in 'E' messages (which are equivalent of 'C'
    messages, only for error case). This makes it harder, for instance,
    use a search-and-highlight in a text editor. So fix it.

    Also, Alan Stern requested adding timestamps to 'E' messages. This is
    purely cosmetic, but makes it easier to read the trace. This is done
    for both text and binary APIs.

    Signed-off-by: Pete Zaitcev
    Cc: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Pete Zaitcev
     

12 Dec, 2009

1 commit

  • This patch (as1301) adds support to usbmon for scatter-gather URBs.
    The text interface looks at only the first scatterlist element, since
    it never copies more than 32 bytes of data anyway. The binary
    interface copies as much data as possible up to the first
    non-addressable buffer.

    Signed-off-by: Alan Stern
    CC: Pete Zaitcev
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     

18 Nov, 2009

1 commit

  • This patch (as1299b) fixes a bug in an error-handling path of usbmon's
    binary interface. The storage area for URB data is divided into
    fixed-size blocks. If an URB's data can't be copied, the area
    reserved for it should be decreased to the size of the truncated
    information (rounded up to a block boundary). Rounding up the amount
    to be removed and subtracting it from the reserved size is definitely
    the wrong thing to do.

    Also, when the data for an isochronous URB can't be copied, we can
    still copy the isoc packet descriptors. In fact the current code does
    copy the descriptors, but then sets the capture length to 0 so they
    remain inaccessible. The capture length should be reduced to the
    length of the descriptors, not set to 0.

    Signed-off-by: Alan Stern
    Acked-by: Pete Zaitcev
    CC: stable
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     

28 Sep, 2009

1 commit


23 Sep, 2009

2 commits

  • This patch fixes crashes when usbmon attempts to access GART aperture.
    The old code attempted to take a bus address and convert it into a
    virtual address, which clearly was impossible on systems with actual
    IOMMUs. Let us not persist in this foolishness, and use transfer_buffer
    in all cases instead.

    I think downsides are negligible. The ones I see are:
    - A driver may pass an address of one buffer down as transfer_buffer,
    and entirely different entity mapped for DMA, resulting in misleading
    output of usbmon. Note, however, that PIO based controllers would
    do transfer the same data that usbmon sees here.
    - Out of tree drivers may crash usbmon if they store garbage in
    transfer_buffer. I inspected the in-tree drivers, and clarified
    the documentation in comments.
    - Drivers that use get_user_pages will not be possible to monitor.
    I only found one driver with this problem (drivers/staging/rspiusb).
    - Same happens with with usb_storage transferring from highmem, but
    it works fine on 64-bit systems, so I think it's not a concern.
    At least we don't crash anymore.

    Why didn't we do this in 2.6.10? That's because back in those days
    it was popular not to fill in transfer_buffer, so almost all
    traffic would be invisible (e.g. all of HID was like that).
    But now, the tree is almost 100% PIO friendly, so we can do the
    right thing at last.

    Signed-off-by: Pete Zaitcev
    Signed-off-by: Greg Kroah-Hartman

    Pete Zaitcev
     
  • These statements seem to be unnecessary. No idea why, but I built all
    possible configurations and everything gets built just as before.

    It's an old patch that popped from discussion with Paul in November 2008.
    Obviously not a very high priority but better late than never.

    Signed-off-by: Pete Zaitcev
    Signed-off-by: Greg Kroah-Hartman

    Pete Zaitcev
     

07 Jul, 2009

1 commit

  • These warnings were observed on MIPS32 using 2.6.31-rc1 and gcc-4.2.0:

    mm/page_alloc.c: In function 'alloc_pages_exact':
    mm/page_alloc.c:1986: warning: passing argument 1 of 'virt_to_phys' makes pointer from integer without a cast

    drivers/usb/mon/mon_bin.c: In function 'mon_alloc_buff':
    drivers/usb/mon/mon_bin.c:1264: warning: passing argument 1 of 'virt_to_phys' makes pointer from integer without a cast

    [akpm@linux-foundation.org: fix kernel/perf_counter.c too]
    Signed-off-by: Kevin Cernekee
    Cc: Andi Kleen
    Cc: Ralf Baechle
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kevin Cernekee
     

16 Jun, 2009

1 commit


25 Mar, 2009

1 commit

  • This patch adds an extension to the binary API so it reaches parity with
    existing text API (so-called "1u"). The extension delivers additional data,
    such as ISO descriptors and the interrupt interval.

    Signed-Off-By: Pete Zaitcev
    Signed-off-by: Greg Kroah-Hartman

    Pete Zaitcev
     

28 Jan, 2009

1 commit

  • Running a 32-bit usbmon(8) on 2.6.28-rc9 produces the following:
    ioctl32(usbmon:28563): Unknown cmd fd(3) cmd(400c9206){t:ffffff92;sz:12} arg(ffd3f458) on /dev/usbmon0

    It happens because the compatibility mode was implemented for 2.6.18
    and not updated for the fsops.compat_ioctl API.

    This patch relocates the pieces from under #ifdef CONFIG_COMPAT into
    compat_ioctl with no other changes except one new whitespace.

    Signed-off-by: Pete Zaitcev
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Pete Zaitcev
     

08 Jan, 2009

1 commit

  • usbmon can only be built as a module if usbcore is a module too. Trivial
    changes to the relevant Kconfig and Makefile (and a few trivial changes
    elsewhere) allow usbmon to be built as a module even if usbcore is
    builtin.

    This is verified to work in all 9 permutations (3 correctly prohibited
    by Kconfig, 6 build a suitable result).

    Signed-off-by: Paul Bolle
    Signed-off-by: Pete Zaitcev
    Signed-off-by: Greg Kroah-Hartman

    Pete Zaitcev
     

20 Nov, 2008

1 commit

  • There's a bug in the usbmon binary reader: When using read() to fetch
    the packets and a packet's data is partially read, the next read call
    will once again return up to len_cap bytes of data. The b_read counter
    is not regarded when determining the remaining chunk size.

    So, when dumping USB data with "cat /dev/usbmon0 > usbmon.trace" while
    reading from a USB storage device and analyzing the dump file
    afterwards it will get out of sync after a couple of packets.

    Signed-off-by: Ingo van Lil
    Signed-off-by: Pete Zaitcev
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Pete Zaitcev
     

18 Oct, 2008

1 commit

  • usbmon registers the notifier chain, takes the bus lock and then goes to
    scan the existing devices for hooking up.

    Unfortunately, if usb_mon gets initialized while USB bus discovery is
    going on, it's possible that usbmon gets a notifier on one cpu (which runs
    without USB locks), and the scan is going on and also finds the new bus,
    resulting in a double sysfs registration, which then produces a WARNING.

    Pete Zaitcev did the bug diagnostics on this one

    Signed-off-by: Arjan van de Ven
    Acked-by: Pete Zaitcev
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Arjan van de Ven
     

17 Oct, 2008

1 commit


27 Jul, 2008

1 commit

  • Kmem cache passed to constructor is only needed for constructors that are
    themselves multiplexeres. Nobody uses this "feature", nor does anybody uses
    passed kmem cache in non-trivial way, so pass only pointer to object.

    Non-trivial places are:
    arch/powerpc/mm/init_64.c
    arch/powerpc/mm/hugetlbpage.c

    This is flag day, yes.

    Signed-off-by: Alexey Dobriyan
    Acked-by: Pekka Enberg
    Acked-by: Christoph Lameter
    Cc: Jon Tollefson
    Cc: Nick Piggin
    Cc: Matt Mackall
    [akpm@linux-foundation.org: fix arch/powerpc/mm/hugetlbpage.c]
    [akpm@linux-foundation.org: fix mm/slab.c]
    [akpm@linux-foundation.org: fix ubifs]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     

22 Jul, 2008

2 commits


21 Jun, 2008

1 commit


25 Apr, 2008

2 commits