diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-05-05 21:52:13 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-05-05 21:52:13 -0400 |
| commit | 2a171aa21afcd43f6cee574154d8c8db905351e5 (patch) | |
| tree | 4dbf5b0927c3337dd706cdc9d3c050e072005f53 | |
| parent | 3ce05a4e740539a3e9d48456e2b046b7240df3ff (diff) | |
| parent | 489405fe5ed38e65f6f82f131a39c67f3bae6045 (diff) | |
Merge branch 'akpm' (patches from Andrew)
Merge misc fixes from Andrew Morton:
"16 patches
This includes a new rtc driver for the Abracon AB x80x and isn't very
appropriate for -rc2. It was still being fiddled with a bit during
the merge window and I fell asleep during -rc1"
[ So I took the new driver, it seems small and won't regress anything.
I'm a softy. - Linus ]
* emailed patches from Andrew Morton <akpm@linux-foundation.org>:
rtc: armada38x: fix concurrency access in armada38x_rtc_set_time
ocfs2: dlm: fix race between purge and get lock resource
nilfs2: fix sanity check of btree level in nilfs_btree_root_broken()
util_macros.h: have array pointer point to array of constants
configfs: init configfs module earlier at boot time
mm/hwpoison-inject: check PageLRU of hpage
mm/hwpoison-inject: fix refcounting in no-injection case
mm: soft-offline: fix num_poisoned_pages counting on concurrent events
rtc: add rtc-abx80x, a driver for the Abracon AB x80x i2c rtc
Documentation: bindings: add abracon,abx80x
kasan: show gcc version requirements in Kconfig and Documentation
mm/memory-failure: call shake_page() when error hits thp tail page
lib: delete lib/find_last_bit.c
MAINTAINERS: add co-maintainer for LED subsystem
zram: add Designated Reviewer for zram in MAINTAINERS
revert "zram: move compact_store() to sysfs functions area"
| -rw-r--r-- | Documentation/devicetree/bindings/rtc/abracon,abx80x.txt | 30 | ||||
| -rw-r--r-- | Documentation/kasan.txt | 8 | ||||
| -rw-r--r-- | MAINTAINERS | 2 | ||||
| -rw-r--r-- | drivers/block/zram/zram_drv.c | 23 | ||||
| -rw-r--r-- | drivers/rtc/Kconfig | 10 | ||||
| -rw-r--r-- | drivers/rtc/Makefile | 1 | ||||
| -rw-r--r-- | drivers/rtc/rtc-abx80x.c | 307 | ||||
| -rw-r--r-- | drivers/rtc/rtc-armada38x.c | 24 | ||||
| -rw-r--r-- | fs/configfs/mount.c | 2 | ||||
| -rw-r--r-- | fs/nilfs2/btree.c | 2 | ||||
| -rw-r--r-- | fs/ocfs2/dlm/dlmmaster.c | 13 | ||||
| -rw-r--r-- | include/linux/nilfs2_fs.h | 2 | ||||
| -rw-r--r-- | include/linux/util_macros.h | 2 | ||||
| -rw-r--r-- | lib/Kconfig.kasan | 8 | ||||
| -rw-r--r-- | lib/find_last_bit.c | 41 | ||||
| -rw-r--r-- | mm/hwpoison-inject.c | 13 | ||||
| -rw-r--r-- | mm/memory-failure.c | 16 |
17 files changed, 429 insertions, 75 deletions
diff --git a/Documentation/devicetree/bindings/rtc/abracon,abx80x.txt b/Documentation/devicetree/bindings/rtc/abracon,abx80x.txt new file mode 100644 index 000000000000..be789685a1c2 --- /dev/null +++ b/Documentation/devicetree/bindings/rtc/abracon,abx80x.txt | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | Abracon ABX80X I2C ultra low power RTC/Alarm chip | ||
| 2 | |||
| 3 | The Abracon ABX80X family consist of the ab0801, ab0803, ab0804, ab0805, ab1801, | ||
| 4 | ab1803, ab1804 and ab1805. The ab0805 is the superset of ab080x and the ab1805 | ||
| 5 | is the superset of ab180x. | ||
| 6 | |||
| 7 | Required properties: | ||
| 8 | |||
| 9 | - "compatible": should one of: | ||
| 10 | "abracon,abx80x" | ||
| 11 | "abracon,ab0801" | ||
| 12 | "abracon,ab0803" | ||
| 13 | "abracon,ab0804" | ||
| 14 | "abracon,ab0805" | ||
| 15 | "abracon,ab1801" | ||
| 16 | "abracon,ab1803" | ||
| 17 | "abracon,ab1804" | ||
| 18 | "abracon,ab1805" | ||
| 19 | Using "abracon,abx80x" will enable chip autodetection. | ||
| 20 | - "reg": I2C bus address of the device | ||
| 21 | |||
| 22 | Optional properties: | ||
| 23 | |||
| 24 | The abx804 and abx805 have a trickle charger that is able to charge the | ||
| 25 | connected battery or supercap. Both the following properties have to be defined | ||
| 26 | and valid to enable charging: | ||
| 27 | |||
| 28 | - "abracon,tc-diode": should be "standard" (0.6V) or "schottky" (0.3V) | ||
| 29 | - "abracon,tc-resistor": should be <0>, <3>, <6> or <11>. 0 disables the output | ||
| 30 | resistor, the other values are in ohm. | ||
diff --git a/Documentation/kasan.txt b/Documentation/kasan.txt index 092fc10961fe..4692241789b1 100644 --- a/Documentation/kasan.txt +++ b/Documentation/kasan.txt | |||
| @@ -9,7 +9,9 @@ a fast and comprehensive solution for finding use-after-free and out-of-bounds | |||
| 9 | bugs. | 9 | bugs. |
| 10 | 10 | ||
| 11 | KASan uses compile-time instrumentation for checking every memory access, | 11 | KASan uses compile-time instrumentation for checking every memory access, |
| 12 | therefore you will need a certain version of GCC > 4.9.2 | 12 | therefore you will need a gcc version of 4.9.2 or later. KASan could detect out |
| 13 | of bounds accesses to stack or global variables, but only if gcc 5.0 or later was | ||
| 14 | used to built the kernel. | ||
| 13 | 15 | ||
| 14 | Currently KASan is supported only for x86_64 architecture and requires that the | 16 | Currently KASan is supported only for x86_64 architecture and requires that the |
| 15 | kernel be built with the SLUB allocator. | 17 | kernel be built with the SLUB allocator. |
| @@ -23,8 +25,8 @@ To enable KASAN configure kernel with: | |||
| 23 | 25 | ||
| 24 | and choose between CONFIG_KASAN_OUTLINE and CONFIG_KASAN_INLINE. Outline/inline | 26 | and choose between CONFIG_KASAN_OUTLINE and CONFIG_KASAN_INLINE. Outline/inline |
| 25 | is compiler instrumentation types. The former produces smaller binary the | 27 | is compiler instrumentation types. The former produces smaller binary the |
| 26 | latter is 1.1 - 2 times faster. Inline instrumentation requires GCC 5.0 or | 28 | latter is 1.1 - 2 times faster. Inline instrumentation requires a gcc version |
| 27 | latter. | 29 | of 5.0 or later. |
| 28 | 30 | ||
| 29 | Currently KASAN works only with the SLUB memory allocator. | 31 | Currently KASAN works only with the SLUB memory allocator. |
| 30 | For better bug detection and nicer report, enable CONFIG_STACKTRACE and put | 32 | For better bug detection and nicer report, enable CONFIG_STACKTRACE and put |
diff --git a/MAINTAINERS b/MAINTAINERS index 781e099495d3..b399b34a2496 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -5805,6 +5805,7 @@ F: drivers/scsi/53c700* | |||
| 5805 | LED SUBSYSTEM | 5805 | LED SUBSYSTEM |
| 5806 | M: Bryan Wu <cooloney@gmail.com> | 5806 | M: Bryan Wu <cooloney@gmail.com> |
| 5807 | M: Richard Purdie <rpurdie@rpsys.net> | 5807 | M: Richard Purdie <rpurdie@rpsys.net> |
| 5808 | M: Jacek Anaszewski <j.anaszewski@samsung.com> | ||
| 5808 | L: linux-leds@vger.kernel.org | 5809 | L: linux-leds@vger.kernel.org |
| 5809 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds.git | 5810 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds.git |
| 5810 | S: Maintained | 5811 | S: Maintained |
| @@ -11037,6 +11038,7 @@ F: drivers/media/pci/zoran/ | |||
| 11037 | ZRAM COMPRESSED RAM BLOCK DEVICE DRVIER | 11038 | ZRAM COMPRESSED RAM BLOCK DEVICE DRVIER |
| 11038 | M: Minchan Kim <minchan@kernel.org> | 11039 | M: Minchan Kim <minchan@kernel.org> |
| 11039 | M: Nitin Gupta <ngupta@vflare.org> | 11040 | M: Nitin Gupta <ngupta@vflare.org> |
| 11041 | R: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com> | ||
| 11040 | L: linux-kernel@vger.kernel.org | 11042 | L: linux-kernel@vger.kernel.org |
| 11041 | S: Maintained | 11043 | S: Maintained |
| 11042 | F: drivers/block/zram/ | 11044 | F: drivers/block/zram/ |
diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c index c94386aa563d..8dcbced0eafd 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c | |||
| @@ -74,6 +74,27 @@ static inline struct zram *dev_to_zram(struct device *dev) | |||
| 74 | return (struct zram *)dev_to_disk(dev)->private_data; | 74 | return (struct zram *)dev_to_disk(dev)->private_data; |
| 75 | } | 75 | } |
| 76 | 76 | ||
| 77 | static ssize_t compact_store(struct device *dev, | ||
| 78 | struct device_attribute *attr, const char *buf, size_t len) | ||
| 79 | { | ||
| 80 | unsigned long nr_migrated; | ||
| 81 | struct zram *zram = dev_to_zram(dev); | ||
| 82 | struct zram_meta *meta; | ||
| 83 | |||
| 84 | down_read(&zram->init_lock); | ||
| 85 | if (!init_done(zram)) { | ||
| 86 | up_read(&zram->init_lock); | ||
| 87 | return -EINVAL; | ||
| 88 | } | ||
| 89 | |||
| 90 | meta = zram->meta; | ||
| 91 | nr_migrated = zs_compact(meta->mem_pool); | ||
| 92 | atomic64_add(nr_migrated, &zram->stats.num_migrated); | ||
| 93 | up_read(&zram->init_lock); | ||
| 94 | |||
| 95 | return len; | ||
| 96 | } | ||
| 97 | |||
| 77 | static ssize_t disksize_show(struct device *dev, | 98 | static ssize_t disksize_show(struct device *dev, |
| 78 | struct device_attribute *attr, char *buf) | 99 | struct device_attribute *attr, char *buf) |
| 79 | { | 100 | { |
| @@ -1038,6 +1059,7 @@ static const struct block_device_operations zram_devops = { | |||
| 1038 | .owner = THIS_MODULE | 1059 | .owner = THIS_MODULE |
| 1039 | }; | 1060 | }; |
| 1040 | 1061 | ||
| 1062 | static DEVICE_ATTR_WO(compact); | ||
| 1041 | static DEVICE_ATTR_RW(disksize); | 1063 | static DEVICE_ATTR_RW(disksize); |
| 1042 | static DEVICE_ATTR_RO(initstate); | 1064 | static DEVICE_ATTR_RO(initstate); |
| 1043 | static DEVICE_ATTR_WO(reset); | 1065 | static DEVICE_ATTR_WO(reset); |
| @@ -1114,6 +1136,7 @@ static struct attribute *zram_disk_attrs[] = { | |||
| 1114 | &dev_attr_num_writes.attr, | 1136 | &dev_attr_num_writes.attr, |
| 1115 | &dev_attr_failed_reads.attr, | 1137 | &dev_attr_failed_reads.attr, |
| 1116 | &dev_attr_failed_writes.attr, | 1138 | &dev_attr_failed_writes.attr, |
| 1139 | &dev_attr_compact.attr, | ||
| 1117 | &dev_attr_invalid_io.attr, | 1140 | &dev_attr_invalid_io.attr, |
| 1118 | &dev_attr_notify_free.attr, | 1141 | &dev_attr_notify_free.attr, |
| 1119 | &dev_attr_zero_pages.attr, | 1142 | &dev_attr_zero_pages.attr, |
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig index 6149ae01e11f..0fe4ad8826b2 100644 --- a/drivers/rtc/Kconfig +++ b/drivers/rtc/Kconfig | |||
| @@ -164,6 +164,16 @@ config RTC_DRV_ABB5ZES3 | |||
| 164 | This driver can also be built as a module. If so, the module | 164 | This driver can also be built as a module. If so, the module |
| 165 | will be called rtc-ab-b5ze-s3. | 165 | will be called rtc-ab-b5ze-s3. |
| 166 | 166 | ||
| 167 | config RTC_DRV_ABX80X | ||
| 168 | tristate "Abracon ABx80x" | ||
| 169 | help | ||
| 170 | If you say yes here you get support for Abracon AB080X and AB180X | ||
| 171 | families of ultra-low-power battery- and capacitor-backed real-time | ||
| 172 | clock chips. | ||
| 173 | |||
| 174 | This driver can also be built as a module. If so, the module | ||
| 175 | will be called rtc-abx80x. | ||
| 176 | |||
| 167 | config RTC_DRV_AS3722 | 177 | config RTC_DRV_AS3722 |
| 168 | tristate "ams AS3722 RTC driver" | 178 | tristate "ams AS3722 RTC driver" |
| 169 | depends on MFD_AS3722 | 179 | depends on MFD_AS3722 |
diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile index c31731c29762..2b82e2b0311b 100644 --- a/drivers/rtc/Makefile +++ b/drivers/rtc/Makefile | |||
| @@ -25,6 +25,7 @@ obj-$(CONFIG_RTC_DRV_88PM80X) += rtc-88pm80x.o | |||
| 25 | obj-$(CONFIG_RTC_DRV_AB3100) += rtc | ||
