Merge 'akpm' patch series
* Merge akpm patch series: (122 commits) drivers/connector/cn_proc.c: remove unused local Documentation/SubmitChecklist: add RCU debug config options reiserfs: use hweight_long() reiserfs: use proper little-endian bitops pnpacpi: register disabled resources drivers/rtc/rtc-tegra.c: properly initialize spinlock drivers/rtc/rtc-twl.c: check return value of twl_rtc_write_u8() in twl_rtc_set_time() drivers/rtc: add support for Qualcomm PMIC8xxx RTC drivers/rtc/rtc-s3c.c: support clock gating drivers/rtc/rtc-mpc5121.c: add support for RTC on MPC5200 init: skip calibration delay if previously done misc/eeprom: add eeprom access driver for digsy_mtc board misc/eeprom: add driver for microwire 93xx46 EEPROMs checkpatch.pl: update $logFunctions checkpatch: make utf-8 test --strict checkpatch.pl: add ability to ignore various messages checkpatch: add a "prefer __aligned" check checkpatch: validate signature styles and To: and Cc: lines checkpatch: add __rcu as a sparse modifier checkpatch: suggest using min_t or max_t ... Did this as a merge because of (trivial) conflicts in - Documentation/feature-removal-schedule.txt - arch/xtensa/include/asm/uaccess.h that were just easier to fix up in the merge than in the patch series.
This commit is contained in:
@@ -92,8 +92,8 @@ static void __exit ikconfig_cleanup(void)
|
||||
module_init(ikconfig_init);
|
||||
module_exit(ikconfig_cleanup);
|
||||
|
||||
#endif /* CONFIG_IKCONFIG_PROC */
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Randy Dunlap");
|
||||
MODULE_DESCRIPTION("Echo the kernel .config file used to build the kernel");
|
||||
|
||||
#endif /* CONFIG_IKCONFIG_PROC */
|
||||
|
@@ -355,8 +355,8 @@ static int fault_in_user_writeable(u32 __user *uaddr)
|
||||
int ret;
|
||||
|
||||
down_read(&mm->mmap_sem);
|
||||
ret = get_user_pages(current, mm, (unsigned long)uaddr,
|
||||
1, 1, 0, NULL, NULL);
|
||||
ret = fixup_user_fault(current, mm, (unsigned long)uaddr,
|
||||
FAULT_FLAG_WRITE);
|
||||
up_read(&mm->mmap_sem);
|
||||
|
||||
return ret < 0 ? ret : 0;
|
||||
|
@@ -87,8 +87,8 @@ void devm_free_irq(struct device *dev, unsigned int irq, void *dev_id)
|
||||
{
|
||||
struct irq_devres match_data = { irq, dev_id };
|
||||
|
||||
free_irq(irq, dev_id);
|
||||
WARN_ON(devres_destroy(dev, devm_irq_release, devm_irq_match,
|
||||
&match_data));
|
||||
free_irq(irq, dev_id);
|
||||
}
|
||||
EXPORT_SYMBOL(devm_free_irq);
|
||||
|
@@ -525,37 +525,6 @@ void srcu_init_notifier_head(struct srcu_notifier_head *nh)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(srcu_init_notifier_head);
|
||||
|
||||
/**
|
||||
* register_reboot_notifier - Register function to be called at reboot time
|
||||
* @nb: Info about notifier function to be called
|
||||
*
|
||||
* Registers a function with the list of functions
|
||||
* to be called at reboot time.
|
||||
*
|
||||
* Currently always returns zero, as blocking_notifier_chain_register()
|
||||
* always returns zero.
|
||||
*/
|
||||
int register_reboot_notifier(struct notifier_block *nb)
|
||||
{
|
||||
return blocking_notifier_chain_register(&reboot_notifier_list, nb);
|
||||
}
|
||||
EXPORT_SYMBOL(register_reboot_notifier);
|
||||
|
||||
/**
|
||||
* unregister_reboot_notifier - Unregister previously registered reboot notifier
|
||||
* @nb: Hook to be unregistered
|
||||
*
|
||||
* Unregisters a previously registered reboot
|
||||
* notifier function.
|
||||
*
|
||||
* Returns zero on success, or %-ENOENT on failure.
|
||||
*/
|
||||
int unregister_reboot_notifier(struct notifier_block *nb)
|
||||
{
|
||||
return blocking_notifier_chain_unregister(&reboot_notifier_list, nb);
|
||||
}
|
||||
EXPORT_SYMBOL(unregister_reboot_notifier);
|
||||
|
||||
static ATOMIC_NOTIFIER_HEAD(die_chain);
|
||||
|
||||
int notrace __kprobes notify_die(enum die_val val, const char *str,
|
||||
|
32
kernel/sys.c
32
kernel/sys.c
@@ -8,7 +8,6 @@
|
||||
#include <linux/mm.h>
|
||||
#include <linux/utsname.h>
|
||||
#include <linux/mman.h>
|
||||
#include <linux/notifier.h>
|
||||
#include <linux/reboot.h>
|
||||
#include <linux/prctl.h>
|
||||
#include <linux/highuid.h>
|
||||
@@ -319,6 +318,37 @@ void kernel_restart_prepare(char *cmd)
|
||||
syscore_shutdown();
|
||||
}
|
||||
|
||||
/**
|
||||
* register_reboot_notifier - Register function to be called at reboot time
|
||||
* @nb: Info about notifier function to be called
|
||||
*
|
||||
* Registers a function with the list of functions
|
||||
* to be called at reboot time.
|
||||
*
|
||||
* Currently always returns zero, as blocking_notifier_chain_register()
|
||||
* always returns zero.
|
||||
*/
|
||||
int register_reboot_notifier(struct notifier_block *nb)
|
||||
{
|
||||
return blocking_notifier_chain_register(&reboot_notifier_list, nb);
|
||||
}
|
||||
EXPORT_SYMBOL(register_reboot_notifier);
|
||||
|
||||
/**
|
||||
* unregister_reboot_notifier - Unregister previously registered reboot notifier
|
||||
* @nb: Hook to be unregistered
|
||||
*
|
||||
* Unregisters a previously registered reboot
|
||||
* notifier function.
|
||||
*
|
||||
* Returns zero on success, or %-ENOENT on failure.
|
||||
*/
|
||||
int unregister_reboot_notifier(struct notifier_block *nb)
|
||||
{
|
||||
return blocking_notifier_chain_unregister(&reboot_notifier_list, nb);
|
||||
}
|
||||
EXPORT_SYMBOL(unregister_reboot_notifier);
|
||||
|
||||
/**
|
||||
* kernel_restart - reboot the system
|
||||
* @cmd: pointer to buffer containing command to execute for restart
|
||||
|
Reference in New Issue
Block a user