提交 cf70a6f2 编写于 作者: L Linus Torvalds
...@@ -129,6 +129,9 @@ void machine_power_off(void) ...@@ -129,6 +129,9 @@ void machine_power_off(void)
for (;;); for (;;);
} }
void (*pm_power_off)(void) = machine_power_off;
EXPORT_SYMBOL(pm_power_off);
void show_regs(struct pt_regs * regs) void show_regs(struct pt_regs * regs)
{ {
printk("\n"); printk("\n");
......
...@@ -2082,9 +2082,7 @@ static void sbp2_check_sbp2_response(struct scsi_id_instance_data *scsi_id, ...@@ -2082,9 +2082,7 @@ static void sbp2_check_sbp2_response(struct scsi_id_instance_data *scsi_id,
SBP2_DEBUG("sbp2_check_sbp2_response"); SBP2_DEBUG("sbp2_check_sbp2_response");
switch (SCpnt->cmnd[0]) { if (SCpnt->cmnd[0] == INQUIRY && (SCpnt->cmnd[1] & 3) == 0) {
case INQUIRY:
/* /*
* Make sure data length is ok. Minimum length is 36 bytes * Make sure data length is ok. Minimum length is 36 bytes
*/ */
...@@ -2097,13 +2095,7 @@ static void sbp2_check_sbp2_response(struct scsi_id_instance_data *scsi_id, ...@@ -2097,13 +2095,7 @@ static void sbp2_check_sbp2_response(struct scsi_id_instance_data *scsi_id,
*/ */
scsi_buf[2] |= 2; scsi_buf[2] |= 2;
scsi_buf[3] = (scsi_buf[3] & 0xf0) | 2; scsi_buf[3] = (scsi_buf[3] & 0xf0) | 2;
break;
default:
break;
} }
return;
} }
/* /*
......
...@@ -204,10 +204,6 @@ int proc_fill_super(struct super_block *s, void *data, int silent) ...@@ -204,10 +204,6 @@ int proc_fill_super(struct super_block *s, void *data, int silent)
root_inode = proc_get_inode(s, PROC_ROOT_INO, &proc_root); root_inode = proc_get_inode(s, PROC_ROOT_INO, &proc_root);
if (!root_inode) if (!root_inode)
goto out_no_root; goto out_no_root;
/*
* Fixup the root inode's nlink value
*/
root_inode->i_nlink += nr_processes();
root_inode->i_uid = 0; root_inode->i_uid = 0;
root_inode->i_gid = 0; root_inode->i_gid = 0;
s->s_root = d_alloc_root(root_inode); s->s_root = d_alloc_root(root_inode);
......
...@@ -80,16 +80,16 @@ void __init proc_root_init(void) ...@@ -80,16 +80,16 @@ void __init proc_root_init(void)
proc_bus = proc_mkdir("bus", NULL); proc_bus = proc_mkdir("bus", NULL);
} }
static struct dentry *proc_root_lookup(struct inode * dir, struct dentry * dentry, struct nameidata *nd) static int proc_root_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat
)
{ {
/* generic_fillattr(dentry->d_inode, stat);
* nr_threads is actually protected by the tasklist_lock; stat->nlink = proc_root.nlink + nr_processes();
* however, it's conventional to do reads, especially for return 0;
* reporting, without any locking whatsoever. }
*/
if (dir->i_ino == PROC_ROOT_INO) /* check for safety... */
dir->i_nlink = proc_root.nlink + nr_threads;
static struct dentry *proc_root_lookup(struct inode * dir, struct dentry * dentry, struct nameidata *nd)
{
if (!proc_lookup(dir, dentry, nd)) { if (!proc_lookup(dir, dentry, nd)) {
return NULL; return NULL;
} }
...@@ -134,6 +134,7 @@ static struct file_operations proc_root_operations = { ...@@ -134,6 +134,7 @@ static struct file_operations proc_root_operations = {
*/ */
static struct inode_operations proc_root_inode_operations = { static struct inode_operations proc_root_inode_operations = {
.lookup = proc_root_lookup, .lookup = proc_root_lookup,
.getattr = proc_root_getattr,
}; };
/* /*
......
...@@ -79,7 +79,7 @@ static __inline__ int irq_canonicalize(int irq) ...@@ -79,7 +79,7 @@ static __inline__ int irq_canonicalize(int irq)
extern void (*enable_irq)(unsigned int); extern void (*enable_irq)(unsigned int);
extern void (*disable_irq)(unsigned int); extern void (*disable_irq)(unsigned int);
#define enable_irq_nosync enable_irq #define disable_irq_nosync disable_irq
struct pt_regs; struct pt_regs;
......
...@@ -336,6 +336,7 @@ static inline void raw_outsw_swapw(volatile u16 __iomem *port, const u16 *buf, ...@@ -336,6 +336,7 @@ static inline void raw_outsw_swapw(volatile u16 __iomem *port, const u16 *buf,
: "d0", "a0", "a1", "d6"); : "d0", "a0", "a1", "d6");
} }
#define __raw_writel raw_outl
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
......
...@@ -841,7 +841,7 @@ static void audit_log_exit(struct audit_context *context, gfp_t gfp_mask) ...@@ -841,7 +841,7 @@ static void audit_log_exit(struct audit_context *context, gfp_t gfp_mask)
for (aux = context->aux; aux; aux = aux->next) { for (aux = context->aux; aux; aux = aux->next) {
ab = audit_log_start(context, GFP_KERNEL, aux->type); ab = audit_log_start(context, gfp_mask, aux->type);
if (!ab) if (!ab)
continue; /* audit_panic has been called */ continue; /* audit_panic has been called */
...@@ -878,14 +878,14 @@ static void audit_log_exit(struct audit_context *context, gfp_t gfp_mask) ...@@ -878,14 +878,14 @@ static void audit_log_exit(struct audit_context *context, gfp_t gfp_mask)
} }
if (context->pwd && context->pwdmnt) { if (context->pwd && context->pwdmnt) {
ab = audit_log_start(context, GFP_KERNEL, AUDIT_CWD); ab = audit_log_start(context, gfp_mask, AUDIT_CWD);
if (ab) { if (ab) {
audit_log_d_path(ab, "cwd=", context->pwd, context->pwdmnt); audit_log_d_path(ab, "cwd=", context->pwd, context->pwdmnt);
audit_log_end(ab); audit_log_end(ab);
} }
} }
for (i = 0; i < context->name_count; i++) { for (i = 0; i < context->name_count; i++) {
ab = audit_log_start(context, GFP_KERNEL, AUDIT_PATH); ab = audit_log_start(context, gfp_mask, AUDIT_PATH);
if (!ab) if (!ab)
continue; /* audit_panic has been called */ continue; /* audit_panic has been called */
......
...@@ -15,8 +15,8 @@ ...@@ -15,8 +15,8 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*/ */
#include <linux/io.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/io.h>
/** /**
* __iowrite32_copy - copy data to MMIO space, in 32-bit units * __iowrite32_copy - copy data to MMIO space, in 32-bit units
......
...@@ -458,7 +458,7 @@ ip6ip6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, ...@@ -458,7 +458,7 @@ ip6ip6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
mtu = IPV6_MIN_MTU; mtu = IPV6_MIN_MTU;
t->dev->mtu = mtu; t->dev->mtu = mtu;
if ((len = sizeof (*ipv6h) + ipv6h->payload_len) > mtu) { if ((len = sizeof (*ipv6h) + ntohs(ipv6h->payload_len)) > mtu) {
rel_type = ICMPV6_PKT_TOOBIG; rel_type = ICMPV6_PKT_TOOBIG;
rel_code = 0; rel_code = 0;
rel_info = mtu; rel_info = mtu;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册