Commit Graph

20 Commits

Author SHA1 Message Date
Nathan Chancellor f498dc9e48 This is the 3.10.89 stable release
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABCAAGBQJWADeuAAoJEDjbvchgkmk+rBQP/AvYd/olvVKgtQbPfUanzbSR
 tkEZLWQJBWTXLHtKvYevVjVhxJ7cc8fIBQ3R+4mFUeUCcExSc5Kh2rLacHQDlF04
 t9vJxkVVM688JL0C5aDNX7KYGYIWxtmIxvjPTtSj1Pw44Tgl16YYKuXC11BuZ9L+
 fHmajmNRBJksEzVuHOPdpjPxcUvTU4NS+2jWeCOiUSYh7QheVIhUIn/isCme8KBe
 v/qlSWQgirxJbp4j2/H/1zI+45FxSkoONC7fSTIt3ppiwrKjLXrTfjsnKvtdKyGx
 8mF5fRHmSFs0CK/Idf/Dnny2rB/4X2G5uR9xdbXhustRViCVjBrX3zd1+HWsvD3H
 J0aydALS+U/mwC9K0RffOlhXTpVuUParhYI8De/WfvmHIhAQjLtfjZ7Y3F6nuJc1
 SaMhTso0lpDeglvGDX1fK0LV3byqxfK3eU7toB5tLD6/k3JPFrDYw9jvSy3DktcE
 7WODQb296S3jQ4F9COhI+wEGttZwuAA9hT3/qAPGj5bG6fDuz2/DEedUw3VnmVO8
 sJ9SZPI5u0uSueScuVHS7d/cswR+jWOW8yAQyyIMFaI1Lz6yhwrOTV/iGFYYPmlV
 Tz98mHAE2eRguCSWBEjurLD+yVCbzbBSor78m9rJjsLsNnp8Q4K5gZaq40irRgTQ
 CU4olbw0SLthTgn/jiUb
 =qhU3
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEJDfLduVEy2qz2d/TmXOSYMtstxYFAlpqb+MACgkQmXOSYMts
 txZYFw//W6U1bpN3k2fHh8MV5b1UC6/er5tzjaqXf8cBL6Wu8UC89OhXz9VNHiYc
 I3keH+as0OZmJ/K8WGKd+FtiBbw7amtz/nq+kOu2JtDUIZEY/0VwOl3yFqI4noTf
 /OWKWCOSXuvyzaMT2T2Fjm15OBKVoZDL1ml0rhJmo+kNrARW1ZrhIG7kt6Nkrn4o
 zgaFTWe6h+DLAkzBXh2Td7hWLL3PkPIFY8EybaZCc6FT7SiQZsqyeWQrQQurlifz
 zkzMlRp6NH58BVbxLZ/Vxyh9QB+C3627DuXKKxp4dY5ofA/3v4WhHEQ7RTK14wQD
 OymOnFc+nkuMO9OmdUk/NI01H62nwb2u7cOuih82r5/YhvvVi0aZT6iQxU6ygYX4
 dmJPaX4tq/uYQFV20N986+EivTuOE0rxXudT9Xxs2HSO+y7sMU9nPckf9dt37sY1
 VeUOrjJM9nzjSjKQaIji+bW0ATirLZ0e0db56DnABgiBpbyuVLcWY/jwYPZfPSYg
 v5vi1/qCF80HIxTW4WpZduqm092SlIYgMxNEFpn25b1oZo1CP6qz/gSifAAGOYLX
 xNvLwBhCQ2a7aGhFqCPow/mM3VrViJ83Bas/CE1V/RiMlWU1RivE8AYIUYgsvcF1
 Ljx64pHiXrKWjzXQR907YARkfTbuPm8hxpTwfuSsdU+0pZ6vJJg=
 =/l3j
 -----END PGP SIGNATURE-----

Merge 3.10.89 into android-msm-bullhead-3.10-oreo-m5

Changes in 3.10.89: (22 commits)
        DRM - radeon: Don't link train DisplayPort on HPD until we get the dpcd
        iio: bmg160: IIO_BUFFER and IIO_TRIGGERED_BUFFER are required
        iio: Add inverse unit conversion macros
        iio: adis16480: Fix scale factors
        clk: versatile: off by one in clk_sp810_timerclken_of_get()
        PCI: Fix TI816X class code quirk
        USB: symbolserial: Use usb_get_serial_port_data
        USB: ftdi_sio: Added custom PID for CustomWare products
        usb: dwc3: ep0: Fix mem corruption on OUT transfers of more than 512 bytes
        usb: host: ehci-sys: delete useless bus_to_hcd conversion
        serial: 8250: don't bind to SMSC IrCC IR port
        crypto: ghash-clmulni: specify context size for ghash async algorithm
        HID: usbhid: Fix the check for HID_RESET_PENDING in hid_io_error
        xtensa: fix threadptr reload on return to userspace
        xtensa: fix kernel register spilling
        devres: fix devres_get()
        auxdisplay: ks0108: fix refcount
        of/address: Don't loop forever in of_find_matching_node_by_address().
        drivercore: Fix unregistration path of platform devices
        hpfs: update ctime and mtime on directory modification
        xtensa: don't use echo -e needlessly
        Linux 3.10.89

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2018-01-25 17:01:39 -07:00
Masahiro Yamada db4d79952c devres: fix devres_get()
commit 64526370d11ce8868ca495723d595b61e8697fbf upstream.

Currently, devres_get() passes devres_free() the pointer to devres,
but devres_free() should be given with the pointer to resource data.

Fixes: 9ac7849e35 ("devres: device resource management")
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-21 10:00:09 -07:00
Eli Billauer 1ab65d9db1 devres: Add devm_get_free_pages API
devm_get_free_pages() and devm_free_pages() are the managed counterparts
for __get_free_pages() and free_pages().

Change-Id: I342c30e10c0e379c7642acfcdb7da0470ea7f4f3
Signed-off-by: Eli Billauer <eli.billauer@gmail.com>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Git-commit: 43339bed7010da6e7cf797db3216a136a974a0cd
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
2014-07-31 15:26:44 -07:00
Srinivas Pandruvada 9957064e86 devres: introduce API "devm_kmemdup
Introduce devm_kmemdup, which uses resource managed kmalloc.
There are several request from maintainers to add this instead
of using kmemdup.

Change-Id: I9a74683b3025ecb2e4b6abbef6f3c0f3208a8249
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Git-commit: 3046365bb470f0ec2f7cf5cb07a8ee7e4b490103
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
2014-07-31 15:26:43 -07:00
Manish Badarkhe bed066e24e devres: introduce API "devm_kstrdup"
This patch introduces "devm_kstrdup" API so that the
device's driver can allocate memory and copy string.

Change-Id: Iaeeeb289dc599ae3aa4477386edf9f6b70f83704
Signed-off-by: Manish Badarkhe <badarkhe.manish@gmail.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
Git-commit: e31108cad3deabb1a63111d7aa699ca67753c01f
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
2014-07-31 15:26:43 -07:00
Kevin Hilman 027ac70e49 devres: restore zeroing behavior of devres_alloc()
commit 64c862a8 (devres: add kernel standard devm_k.alloc functions) changed
the default behavior of alloc_dr() to no longer zero the allocated memory.  However,
only the devm.k.alloc() function were modified to pass in __GFP_ZERO which leaves
any users of devres_alloc() or __devres_alloc() with potentially wrong assumptions
about memory being zero'd upon allocation.

To fix, add __GFP_ZERO to devres_alloc() calls to preserve previous
behavior of zero'ing memory upon allocation.

Change-Id: Ia1d5f757dfbf0a75ff39279ff87e182085f451cf
Signed-off-by: Kevin Hilman <khilman@linaro.org>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Git-commit: 6fffcfa7c0fc438d3667b4eb2074d94f69c12c7b
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
2014-07-31 15:26:43 -07:00
Joe Perches e85c323357 devres: add kernel standard devm_k.alloc functions
Currently, devm_ managed memory only supports kzalloc.

Convert the devm_kzalloc implementation to devm_kmalloc and remove the
complete memset to 0 but still set the initial struct devres header and
whatever padding before data to 0.

Add the other normal alloc variants as static inlines with __GFP_ZERO
added to the gfp flag where appropriate:

	devm_kzalloc
	devm_kcalloc
	devm_kmalloc_array

Add gfp.h to device.h for the newly added static inlines.

akpm: the current API forces us to replace kmalloc() with kzalloc() when
performing devm_ conversions.  This adds a relatively minor overhead.
More significantly, it will defeat kmemcheck used-uninitialized checking,
and for a particular driver, losing used-uninitialised checking for their
core controlling data structures will significantly degrade kmemcheck
usefulness.

Change-Id: Ib508e5b5f5eb2c8414054e200645fb9c98c48eac
Signed-off-by: Joe Perches <joe@perches.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Sangjung Woo <sangjung.woo@samsung.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Git-commit: 64c862a839a8db2c02bbaa88b923d13e1208919d
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
2014-07-31 15:26:42 -07:00
Dmitry Torokhov 688d794c4c Linux 3.9-rc3
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.19 (GNU/Linux)
 
 iQEcBAABAgAGBQJRRkrbAAoJEHm+PkMAQRiGy3oH/jrbHinYs0auurANgx4TdtWT
 /WNajstKBqLOJJ6cnTR7sOqwOVlptt65EbbTs+qGyZ2Z2W/Lg0BMenHvNHo4ER8C
 e7UbMdBCSLKBjAMKh1XCoZscGv4Exm8WRH3Vc5yP0Hafj3EzSAVLY1dta9WKKoQi
 bh7D1ErUlbU1zczA1w5YbPF0LqFKRvyZOwebMCCAKAxv5wWAxmbcPNxVR4sufkjg
 k6TkQ2ysgWivZAfy3tJYOcxiEu7ahpZVEuYdlZEJQXHRQUfoNljQlOp4BqKsYUai
 5A0kaf2VpKay/7pkhvTfBBcF/jFJ68pYP6gQ2ThNdr0b5kOiAfMWj030Xyngnhg=
 =iO9t
 -----END PGP SIGNATURE-----

Merge tag 'v3.9-rc3' into next

Merge with mainline to bring in module_platform_driver_probe() and
devm_ioremap_resource().
2013-03-17 19:40:50 -07:00
Dmitry Torokhov d6b0c58048 devres: allow adding custom actions to the stack
Sometimes drivers need to execute one-off actions in their error handling
or device teardown paths. An example would be toggling a GPIO line to
reset the controlled device into predefined state.

To allow performing such actions when using managed resources let's allow
adding them to stack/group of devres resources.

Acked-by: Tejun Heo <tj@kernel.org>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2013-02-25 23:02:42 -08:00
Joe Perches a369a7ebbf drivers: base: Convert dev_printk(KERN_<LEVEL> to dev_<level>(
dev_<level> calls take less code than dev_printk(KERN_<LEVEL>
and reducing object size is good.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-10-30 17:38:43 -07:00
Ming Lei bddb1b9078 driver core: devres: introduce devres_for_each_res
This patch introduces one devres API of devres_for_each_res
so that the device's driver can iterate each resource it has
interest in.

The firmware loader will use the API to get each firmware name
from the device instance.

Signed-off-by: Ming Lei <ming.lei@canonical.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-08-16 13:30:29 -07:00
Mark Brown d926d0e4c7 devres: Add devres_release()
APIs using devres frequently want to implement a "remove and free the
resource" operation so it seems sensible that they should be able to
just have devres do the freeing for them since that's a big part of what
devres is all about.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-05-04 16:33:16 -07:00
Mark Brown 698cd2ddd8 devres: Clarify documentation for devres_destroy()
It's not massively obvious (at least to me) that removing and freeing a
resource does not involve calling the release function for the resource
but rather only removes the management of it. Make the documentation more
explicit.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-05-04 16:33:16 -07:00
Axel Lin 92f1b85187 devres: Fix a typo in devm_kfree comment
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2011-12-21 00:31:47 +01:00
H Hartley Sweeten 86ec67fd0a base/devres.c: quiet sparse noise about context imbalance
devres_release_all and devres_release_group both aquire the lock
&dev->devres_lock but the release of that lock is done in release_nodes.
This results in sparse noise about context imbalance.

Add a lock annotation to release_nodes to quiet this noise.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-08-22 14:12:24 -07:00
Tejun Heo 5a0e3ad6af include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit 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>
2010-03-30 22:02:32 +09:00
Benjamin Herrenschmidt eb8d3c604f devres: WARN() and return, don't crash on device_del() of uninitialized device
I just debugged an obscure crash caused by a device_del() of a all NULL'd
out struct device (in usb-serial) and found that a patch like this one would
have saved me time (in addition to improved chances of a bug report from
users hitting similar driver bugs).

[akpm@linux-foundation.org: cleanup]
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-07-12 13:02:09 -07:00
Adrian Bunk 2a0134554e Driver core: fix devres_release_all() return value
Every file should include the headers containing the prototypes for
it's global functions.

Since the GNU C compiler is now able to detect that the function 
prototype of devres_release_all() in the header and the actual function 
disagree regarding the return value, this patch also fixes this bug.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Acked-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2007-07-11 16:09:02 -07:00
Randy Dunlap d3e6975e0f devres: kernel-doc and DocBook
Make devres.c ready for adding to DocBook.
Add devres.c to DocBook.

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
2007-05-09 07:02:59 +02:00
Tejun Heo 9ac7849e35 devres: device resource management
Implement device resource management, in short, devres.  A device
driver can allocate arbirary size of devres data which is associated
with a release function.  On driver detach, release function is
invoked on the devres data, then, devres data is freed.

devreses are typed by associated release functions.  Some devreses are
better represented by single instance of the type while others need
multiple instances sharing the same release function.  Both usages are
supported.

devreses can be grouped using devres group such that a device driver
can easily release acquired resources halfway through initialization
or selectively release resources (e.g. resources for port 1 out of 4
ports).

This patch adds devres core including documentation and the following
managed interfaces.

* alloc/free	: devm_kzalloc(), devm_kzfree()
* IO region	: devm_request_region(), devm_release_region()
* IRQ		: devm_request_irq(), devm_free_irq()
* DMA		: dmam_alloc_coherent(), dmam_free_coherent(),
		  dmam_declare_coherent_memory(), dmam_pool_create(),
		  dmam_pool_destroy()
* PCI		: pcim_enable_device(), pcim_pin_device(), pci_is_managed()
* iomap		: devm_ioport_map(), devm_ioport_unmap(), devm_ioremap(),
		  devm_ioremap_nocache(), devm_iounmap(), pcim_iomap_table(),
		  pcim_iomap(), pcim_iounmap()

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-02-09 17:39:36 -05:00