21 Oct, 2019

1 commit


21 May, 2019

1 commit


23 Jul, 2018

1 commit


06 Jun, 2018

1 commit

  • Pull char/misc driver updates from Greg KH:
    "Here is the "big" char and misc driver patches for 4.18-rc1.

    It's not a lot of stuff here, but there are some highlights:

    - coreboot driver updates

    - soundwire driver updates

    - android binder updates

    - fpga big sync, mostly documentation

    - lots of minor driver updates

    All of these have been in linux-next for a while with no reported
    issues"

    * tag 'char-misc-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (81 commits)
    vmw_balloon: fixing double free when batching mode is off
    MAINTAINERS: Add driver-api/fpga path
    fpga: clarify that unregister functions also free
    documentation: fpga: move fpga-region.txt to driver-api
    documentation: fpga: add bridge document to driver-api
    documentation: fpga: move fpga-mgr.txt to driver-api
    Documentation: fpga: move fpga overview to driver-api
    fpga: region: kernel-doc fixes
    fpga: bridge: kernel-doc fixes
    fpga: mgr: kernel-doc fixes
    fpga: use SPDX
    fpga: region: change api, add fpga_region_create/free
    fpga: bridge: change api, don't use drvdata
    fpga: manager: change api, don't use drvdata
    fpga: region: don't use drvdata in common fpga code
    Drivers: hv: vmbus: Removed an unnecessary cast from void *
    ver_linux: Drop redundant calls to system() to test if file is readable
    ver_linux: Move stderr redirection from function parameter to function body
    misc: IBM Virtual Management Channel Driver (VMC)
    rpmsg: Correct support for MODULE_DEVICE_TABLE()
    ...

    Linus Torvalds
     

16 May, 2018

1 commit


14 May, 2018

1 commit

  • Loading a NuBus driver module on a non-NuBus machine triggers the
    BUG_ON(!drv->bus->p) in driver_register(), because bus_register() was
    not called, because it is conditional on MACH_IS_MAC.

    Fix the crash by calling bus_register() unconditionally. Call it from
    a postcore_initcall(), like other busses do.

    Hence, the bus type is available for device_register(), which happens
    in a subsys initcall, and for driver_register(), which happens in a
    device or module initcall.

    Cc: Greg Kroah-Hartman
    Reported-by: Michael Schmitz
    Tested-by: Stan Johnson
    Fixes: 7f86c765a6a2 ("nubus: Add support for the driver model")
    Signed-off-by: Finn Thain
    Reviewed-by: Geert Uytterhoeven
    Signed-off-by: Greg Kroah-Hartman

    Finn Thain
     

16 Jan, 2018

11 commits

  • This patch brings basic support for the Linux Driver Model to the
    NuBus subsystem.

    For flexibility, the matching of boards with drivers is left up to the
    drivers. This is also the approach taken by NetBSD. A board may have
    many functions, and drivers may have to consider many functional
    resources and board resources in order to match a device.

    This implementation does not bind drivers to resources (nor does it bind
    many drivers to the same board). Apple's NuBus declaration ROM design
    is flexible enough to allow that, but I don't see a need to support it
    as we don't use the "slot zero" resources (in the main logic board ROM).

    Eliminate the global nubus_boards linked list by rewriting the procfs
    board iterator around bus_for_each_dev(). Hence the nubus device refcount
    can be used to determine the lifespan of board objects.

    Cc: Greg Kroah-Hartman
    Reviewed-by: Greg Kroah-Hartman
    Tested-by: Stan Johnson
    Signed-off-by: Finn Thain
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     
  • This increases code re-use and improves readability.

    Cc: "David S. Miller"
    Cc: Bartlomiej Zolnierkiewicz
    Acked-by: Bartlomiej Zolnierkiewicz
    Tested-by: Stan Johnson
    Signed-off-by: Finn Thain
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     
  • It is misleading to call a functional resource a "device". In adopting
    the Linux Driver Model, the struct device will be embedded in struct
    nubus_board. That will compound the terminlogy problem because drivers
    will bind with boards, not with functional resources. Avoid this by
    renaming struct nubus_dev as struct nubus_rsrc. "Functional resource"
    is the vendor's terminology so this helps avoid confusion.

    Cc: "David S. Miller"
    Cc: Bartlomiej Zolnierkiewicz
    Acked-by: Bartlomiej Zolnierkiewicz
    Tested-by: Stan Johnson
    Signed-off-by: Finn Thain
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     
  • The /proc/bus/nubus/s/ directory tree for any slot s is missing a lot
    of information. The struct file_operations methods have long been left
    unimplemented (hence the familiar compile-time warning, "Need to set
    some I/O handlers here").

    Slot resources have a complex structure which varies depending on board
    function. The logic for interpreting these ROM data structures is found
    in nubus.c. Let's not duplicate that logic in proc.c.

    Create the /proc/bus/nubus/s/ inodes while scanning slot s. During
    descent through slot resource subdirectories, call the new
    nubus_proc_add_foo() functions to create the procfs inodes.

    Also add a new function, nubus_seq_write_rsrc_mem(), to write the
    contents of a particular slot resource to a given seq_file. This is
    used by the procfs file_operations methods, to finally give userspace
    access to slot ROM information, such as the available video modes.

    Tested-by: Stan Johnson
    Signed-off-by: Finn Thain
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     
  • Scrap the specialized code to unpack video mode name resources and
    driver resources. It isn't useful.
    Instead, add a re-usable function to handle lists of block resources of
    any kind, and descend into the video mode table resource directory.
    Rename callers as nubus_get_foo(), consistent with their purpose and
    with related functions in the same file.

    Tested-by: Stan Johnson
    Signed-off-by: Finn Thain
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     
  • Eliminate unused values from struct nubus_dev to save wasted memory
    (a Radius PrecisionColor 24X card has about 95 functional resources
    and up to six such cards may be fitted). Also remove redundant static
    variable initialization, an unreachable !MACH_IS_MAC conditional,
    the unused nubus_find_device() function, the bogus get_nubus_list()
    prototype and the pointless card_present temporary variable.

    Tested-by: Stan Johnson
    Signed-off-by: Finn Thain
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     
  • This patch fixes the following WARNING.

    proc_dir_entry 'nubus/a' already registered
    Modules linked in:
    CPU: 0 PID: 1 Comm: swapper Tainted: G W 4.13.0-00036-gd57552077387 #1
    Stack from 01c1bd9c:
    01c1bd9c 003c2c8b 01c1bdc0 0001b0fe 00000000 00322f4a 01c43a20 01c43b0c
    01c8c420 01c1bde8 0001b1b8 003a4ac3 00000148 000faa26 00000009 00000000
    01c1bde0 003a4b6c 01c1bdfc 01c1be20 000faa26 003a4ac3 00000148 003a4b6c
    01c43a71 01c8c471 01c10000 00326430 0043d00c 00000005 01c71a00 0020bce0
    00322964 01c1be38 000fac04 01c43a20 01c8c420 01c1bee0 01c8c420 01c1be50
    000fac4c 01c1bee0 00000000 01c43a20 00000000 01c1bee8 0020bd26 01c1bee0
    Call Trace: [] __warn+0xae/0xde
    [] memcmp+0x0/0x5c
    [] warn_slowpath_fmt+0x2e/0x36
    [] proc_register+0xbe/0xd8
    [] proc_register+0xbe/0xd8
    [] sprintf+0x0/0x20
    [] nubus_proc_attach_device+0x0/0x1b8
    [] strcpy+0x0/0x22
    [] proc_mkdir_data+0x64/0x96
    [] proc_mkdir+0x16/0x1c
    [] nubus_proc_attach_device+0x46/0x1b8
    [] nubus_proc_attach_device+0x0/0x1b8
    [] strcpy+0x0/0x22
    [] kernel_pg_dir+0xba6/0x1000
    [] proc_bus_nubus_add_devices+0x1a/0x2e
    [] proc_create_data+0x0/0xf2
    [] parse_args+0x0/0x2d4
    [] nubus_proc_init+0x52/0x5a
    [] nubus_init+0x0/0x44
    [] nubus_init+0x3e/0x44
    [] do_one_initcall+0x38/0x196
    [] do_one_initcall+0x0/0x196
    [] parse_args+0x0/0x2d4
    [] strcpy+0x0/0x22
    [] __up_read+0xe/0x40
    [] repair_env_string+0x0/0x7a
    [] kernel_init_freeable+0xee/0x194
    [] kernel_init_freeable+0x106/0x194
    [] nubus_init+0x0/0x44
    [] kfree+0x0/0x156
    [] kernel_init+0x0/0xda
    [] kernel_init+0xc/0xda
    [] kernel_init+0x0/0xda
    [] ret_from_kernel_thread+0xc/0x14
    ---[ end trace 14a6d619908ea253 ]---
    ------------[ cut here ]------------

    This gets repeated with each additional functional reasource.

    The problem here is the call to proc_mkdir() when the directory already
    exists. Each nubus_board gets a directory, such as /proc/bus/nubus/s/
    where s is the hex slot number. Therefore, store the 'procdir' pointer
    in struct nubus_board instead of struct nubus_dev.

    Tested-by: Stan Johnson
    Signed-off-by: Finn Thain
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     
  • While we are here, include the slot number in the related error messages.

    Tested-by: Stan Johnson
    Signed-off-by: Finn Thain
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     
  • Testing shows that a single Radius PrecisionColor 24X display board,
    which has 95 functional resources, produces over a thousand lines of
    log messages. Suppress these messages with pr_debug().
    Remove some redundant messages relating to nubus_get_subdir() calls.
    Fix the format block debug messages as the sequence of entries is
    backwards (my bad).
    Move the "scanning slots" message to its proper location.

    Fixes: 71ae40e4cf33 ("nubus: Clean up printk calls")
    Tested-by: Stan Johnson
    Signed-off-by: Finn Thain
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     
  • This fixes a couple of warnings from 'make W=1':
    drivers/nubus/nubus.c:790: warning: no previous prototype for 'nubus_probe_slot'
    drivers/nubus/nubus.c:824: warning: no previous prototype for 'nubus_scan_bus'

    Tested-by: Stan Johnson
    Signed-off-by: Finn Thain
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     
  • Check array indices. Avoid sprintf. Use buffers of sufficient size.
    Use appropriate types for array length parameters.

    Tested-by: Stan Johnson
    Signed-off-by: Finn Thain
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     

14 Nov, 2017

1 commit

  • Pull m68k updates from Geert Uytterhoeven:

    - more printk modernization

    - various cleanups and fixes (incl. a race condition) for Mac

    - defconfig updates

    * tag 'm68k-for-v4.15-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
    m68k/defconfig: Update defconfigs for v4.14-rc7
    m68k/mac: Add mutual exclusion for IOP interrupt polling
    m68k/mac: Disentangle VIA/RBV and NuBus initialization
    m68k/mac: Disentangle VIA and OSS initialization
    m68k/mac: More printk modernization

    Linus Torvalds
     

10 Nov, 2017

1 commit

  • The Nubus subsystem should not be concerned with differences between VIA,
    RBV and OSS platforms. It should be portable across Macs and PowerMacs.
    This goal has implications for the initialization code relating to bus
    locking and slot interrupts.

    During Nubus initialization, bus transactions are "unlocked": on VIA2 and
    RBV machines, via_nubus_init() sets a bit in the via2[gBufB] register to
    allow bus-mastering Nubus cards to arbitrate for the bus. This happens
    upon subsys_initcall(nubus_init). But because nubus_init() has no effect
    on card state, this sequence is arbitrary.

    Moreover, when Penguin is used to boot Linux, the bus is already unlocked
    when Linux starts. On OSS machines there's no attempt to unlock Nubus
    transactions at all. (Maybe there's no benefit on that platform or maybe
    no-one knows how.)

    All of this demonstrates that there's no benefit in locking out
    bus-mastering cards, as yet. (If the need arises, we could lock the bus
    for the duration of a timing-critical operation.) NetBSD unlocks the
    Nubus early (at VIA initialization) and we can do the same.

    via_nubus_init() is also responsible for some VIA interrupt setup that
    should happen earlier than subsys_initcall(nubus_init). And actually, the
    Nubus subsystem need not be involved with slot interrupts: SLOT2IRQ
    works fine because Nubus slot IRQs are geographically assigned
    (regardless of platform).

    For certain platforms with PDS slots, some Nubus IRQs may be platform
    IRQs and this is not something that the NuBus subsystem should worry
    about. So let's invoke via_nubus_init() earlier and make the platform
    responsible for bus unlocking and interrupt setup instead of the NuBus
    subsystem.

    Tested-by: Stan Johnson
    Signed-off-by: Finn Thain
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     

02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

15 May, 2017

2 commits

  • Fix bounds checking on slot-space pointer movement.
    Remove redundant test for zero byte-lanes value.
    Fix broken byte-lanes vs. address validation.

    This patch changes the circumstances under which an error is printed to
    the console and fixes the address validation.

    The validation code should work correctly now: the broken test for a
    valid bytelanes value is replaced with a working test (which eliminates
    false negatives) and the 24-bit directory offset bounds check is fixed
    (which eliminates false positives).

    Please see "Designing Cards and Drivers for the Macintosh Family"
    ch. 8, "NuBus Card Firmware" for an explanation of the bytelanes check
    and directory offset value.

    Signed-off-by: Finn Thain
    Reviewed-by: Michael Schmitz
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     
  • Some long forgotten changes from the linux-mac68k CVS:

    Remove the slot 0 (ROM) probing.
    Remove the pointless White Screen Of Death crap.

    The original commit is here:

    http://linux-mac68k.cvs.sourceforge.net/viewvc/linux-mac68k/linux-mac68k/drivers/nubus/nubus.c?r1=1.22.2.1&r2=1.22.2.2&pathrev=linux-2_2

    This is mostly dead code removal. It is also a reversion to the
    pre-v2.3.17 version. The old code was thoroughly tested in Debian Sarge.

    The present code for probing fake slot resources in Apple's on-board
    (slot zero) ROMs could be useful if replaced the macintosh_config struct.
    But it can't do so and we don't want two mechanisms for identifying
    on-board hardware.

    Signed-off-by: Finn Thain
    Reviewed-by: Michael Schmitz
    Signed-off-by: Geert Uytterhoeven

    David Huggins-Daines
     

20 Apr, 2017

3 commits

  • Signed-off-by: Finn Thain
    [geert: rebased]
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     
  • Some long forgotten changes from the linux-mac68k CVS:

    Fix swapped DrvrSW and DrvrHW values in printk message.
    Suppress debug printk messages.
    Avoid console_loglevel misuse.

    The original commits are these:

    http://linux-mac68k.cvs.sourceforge.net/viewvc/linux-mac68k/linux-mac68k/drivers/nubus/nubus.c?r1=1.22.2.1&r2=1.22.2.2&pathrev=linux-2_2
    http://linux-mac68k.cvs.sourceforge.net/viewvc/linux-mac68k/linux-mac68k/drivers/nubus/nubus.c?r1=1.21&r2=1.22&pathrev=linux-2_2

    The CVS commits fell short of removing all of the misuse of
    console_loglevel in nubus_add_board() so I finished the job.
    I've also added some missing message severity levels and converted
    a printk loop to the MAC address "%pM" format specifier.

    Signed-off-by: Finn Thain
    Signed-off-by: Geert Uytterhoeven

    David Huggins-Daines
     
  • A long forgotten fix from the linux-mac68k CVS:

    Initialize dir->done pointer in nubus_rewinddir().

    The original commit is here:

    http://linux-mac68k.cvs.sourceforge.net/viewvc/linux-mac68k/linux-mac68k/drivers/nubus/nubus.c?r1=1.22&r2=1.22.2.1&pathrev=linux-2_2

    Signed-off-by: Finn Thain
    Signed-off-by: Geert Uytterhoeven

    David Huggins-Daines
     

25 Dec, 2016

1 commit


27 Oct, 2014

1 commit


05 Jun, 2014

1 commit

  • ... instead of naked numbers.

    Stuff in sysrq.c used to set it to 8 which is supposed to mean above
    default level so set it to DEBUG instead as we're terminating/killing all
    tasks and we want to be verbose there.

    Also, correct the check in x86_64_start_kernel which should be >= as
    we're clearly issuing the string there for all debug levels, not only
    the magical 10.

    Signed-off-by: Borislav Petkov
    Acked-by: Kees Cook
    Acked-by: Randy Dunlap
    Cc: Joe Perches
    Cc: Valdis Kletnieks
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Borislav Petkov
     

05 May, 2013

1 commit

  • Commit 59d8053f1e16904d54ed7469d4b36801ea6b8f2c ("proc: Move non-public
    stuff from linux/proc_fs.h to fs/proc/internal.h") broke Apple NuBus
    support:

    drivers/nubus/proc.c: In function ‘nubus_proc_detach_device’:
    drivers/nubus/proc.c:156: error: dereferencing pointer to incomplete type
    drivers/nubus/proc.c:158: error: dereferencing pointer to incomplete type

    Fortunately nubus_proc_detach_device() is unused, and appears to have never
    been used, so just remove it.

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Al Viro

    Geert Uytterhoeven
     

30 Apr, 2013

1 commit


10 Apr, 2013

1 commit

  • Don't use create_proc_entry() in nubus_proc_subdir(). The files created aren't
    given any way to use them, so for the moment use create_proc_read_entry() with
    a NULL accessor and generate a compile-time warning.

    Signed-off-by: David Howells

    David Howells
     

29 Mar, 2012

1 commit


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
     

17 Oct, 2008

1 commit


29 Apr, 2008

2 commits


06 Feb, 2008

1 commit


03 Feb, 2008

1 commit


20 Jul, 2007

1 commit

  • Transform some calls to kmalloc/memset to a single kzalloc (or kcalloc).

    Here is a short excerpt of the semantic patch performing
    this transformation:

    @@
    type T2;
    expression x;
    identifier f,fld;
    expression E;
    expression E1,E2;
    expression e1,e2,e3,y;
    statement S;
    @@

    x =
    - kmalloc
    + kzalloc
    (E1,E2)
    ... when != \(x->fld=E;\|y=f(...,x,...);\|f(...,x,...);\|x=E;\|while(...) S\|for(e1;e2;e3) S\)
    - memset((T2)x,0,E1);

    @@
    expression E1,E2,E3;
    @@

    - kzalloc(E1 * E2,E3)
    + kcalloc(E1,E2,E3)

    [akpm@linux-foundation.org: get kcalloc args the right way around]
    Signed-off-by: Yoann Padioleau
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Acked-by: Russell King
    Cc: Bryan Wu
    Acked-by: Jiri Slaby
    Cc: Dave Airlie
    Acked-by: Roland Dreier
    Cc: Jiri Kosina
    Acked-by: Dmitry Torokhov
    Cc: Benjamin Herrenschmidt
    Acked-by: Mauro Carvalho Chehab
    Acked-by: Pierre Ossman
    Cc: Jeff Garzik
    Cc: "David S. Miller"
    Acked-by: Greg KH
    Cc: James Bottomley
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yoann Padioleau
     

01 Jul, 2006

1 commit