rpms/kernel/devel linux-2.6-nfsd4-proots.patch, NONE, 1.1.2.2 linux-2.6.31-lirc.patch, NONE, 1.2.2.2 lirc_streamzap-buffer-rework.patch, NONE, 1.1.2.2 patch-2.6.31-rc2-git2.bz2.sign, NONE, 1.1.2.2 patch-2.6.31-rc2.bz2.sign, NONE, 1.1.2.2 .cvsignore, 1.1014.2.18, 1.1014.2.19 config-generic, 1.238.6.27, 1.238.6.28 config-x86-generic, 1.68.6.12, 1.68.6.13 config-x86_64-generic, 1.68.2.11, 1.68.2.12 kernel.spec, 1.1294.2.38, 1.1294.2.39 linux-2.6-debug-always-inline-kzalloc.patch, 1.1, 1.1.16.1 linux-2.6-debug-nmi-timeout.patch, 1.4, 1.4.16.1 linux-2.6-debug-sizeof-structs.patch, 1.6, 1.6.16.1 linux-2.6-debug-spinlock-taint.patch, 1.10, 1.10.16.1 linux-2.6-debug-taint-vm.patch, 1.23, 1.23.6.1 linux-2.6-debug-vm-would-have-oomkilled.patch, 1.2, 1.2.6.1 sources, 1.976.2.19, 1.976.2.20 upstream, 1.888.2.18, 1.888.2.19 xen.pvops.patch, 1.1.2.26, 1.1.2.27 drm-no-gem-on-i8xx.patch, 1.1.6.1, NONE linux-2.6-btrfs-experimental-branch.patch, 1.1.2.3, NONE linux-2.6-ext4-prealloc-fixes.patch, 1.1.2.2, NONE linux-2.6-missing-rfc2465-stats.patch, 1.1.2.2, NONE linux-2.6-neigh_-fix-state-transition-INCOMPLETE-_FAILED-via-Netlink-request.patch, 1.1.2.2, NONE linux-2.6.29-lirc.patch, 1.3.6.3, NONE patch-2.6.31-rc1-git9.bz2.sign, 1.1.2.2, NONE patch-2.6.31-rc1.bz2.sign, 1.1.2.2, NONE
myoung
myoung at fedoraproject.org
Thu Jul 9 22:53:18 UTC 2009
- Previous message (by thread): rpms/electronics-menu/F-10 electronics-menu-1.0-makefile.patch, NONE, 1.1 electronics-menu-1.0-submenus.patch, NONE, 1.1 .cvsignore, 1.2, 1.3 electronics-menu.spec, 1.2, 1.3 import.log, 1.1, 1.2 sources, 1.2, 1.3
- Next message (by thread): rpms/ardour/devel ardour-SConstruct.patch, NONE, 1.1 .cvsignore, 1.12, 1.13 ardour.spec, 1.26, 1.27 sources, 1.12, 1.13 ardour-2.8-SConstruct.patch, 1.1, NONE ardour-2.8-gcc44.patch, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: myoung
Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv19315
Modified Files:
Tag: private-myoung-dom0-branch
.cvsignore config-generic config-x86-generic
config-x86_64-generic kernel.spec
linux-2.6-debug-always-inline-kzalloc.patch
linux-2.6-debug-nmi-timeout.patch
linux-2.6-debug-sizeof-structs.patch
linux-2.6-debug-spinlock-taint.patch
linux-2.6-debug-taint-vm.patch
linux-2.6-debug-vm-would-have-oomkilled.patch sources upstream
xen.pvops.patch
Added Files:
Tag: private-myoung-dom0-branch
linux-2.6-nfsd4-proots.patch linux-2.6.31-lirc.patch
lirc_streamzap-buffer-rework.patch
patch-2.6.31-rc2-git2.bz2.sign patch-2.6.31-rc2.bz2.sign
Removed Files:
Tag: private-myoung-dom0-branch
drm-no-gem-on-i8xx.patch
linux-2.6-btrfs-experimental-branch.patch
linux-2.6-ext4-prealloc-fixes.patch
linux-2.6-missing-rfc2465-stats.patch
linux-2.6-neigh_-fix-state-transition-INCOMPLETE-_FAILED-via-Netlink-request.patch
linux-2.6.29-lirc.patch patch-2.6.31-rc1-git9.bz2.sign
patch-2.6.31-rc1.bz2.sign
Log Message:
update pvops and see if CONFIG_KERNEL_LZMA=y is compatible with xen
linux-2.6-nfsd4-proots.patch:
--- NEW FILE linux-2.6-nfsd4-proots.patch ---
diff -up linux-2.6.30.noarch/fs/nfsd/export.c.save linux-2.6.30.noarch/fs/nfsd/export.c
--- linux-2.6.30.noarch/fs/nfsd/export.c.save 2009-07-02 11:34:38.000000000 -0400
+++ linux-2.6.30.noarch/fs/nfsd/export.c 2009-07-02 11:35:44.000000000 -0400
@@ -104,6 +104,7 @@ static int expkey_parse(struct cache_det
if (mesg[mlen-1] != '\n')
return -EINVAL;
mesg[mlen-1] = 0;
+ dprintk("expkey_parse: '%s'\n", mesg);
buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
err = -ENOMEM;
@@ -181,6 +182,8 @@ static int expkey_parse(struct cache_det
if (dom)
auth_domain_put(dom);
kfree(buf);
+ if (err)
+ dprintk("expkey_parse: err %d\n", err);
return err;
}
@@ -351,7 +354,10 @@ static void svc_export_request(struct ca
(*bpp)[0] = '\n';
return;
}
+
qword_add(bpp, blen, pth);
+ dprintk("svc_export_request: pth %s\n", pth);
+
(*bpp)[-1] = '\n';
}
@@ -500,6 +506,7 @@ static int svc_export_parse(struct cache
if (mesg[mlen-1] != '\n')
return -EINVAL;
mesg[mlen-1] = 0;
+ dprintk("svc_export_parse: '%s'\n", mesg);
buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
if (!buf)
@@ -619,6 +626,8 @@ out1:
auth_domain_put(dom);
out:
kfree(buf);
+ if (err)
+ dprintk("svc_export_parse: err %d\n", err);
return err;
}
@@ -1413,6 +1422,7 @@ static struct flags {
{ NFSEXP_CROSSMOUNT, {"crossmnt", ""}},
{ NFSEXP_NOSUBTREECHECK, {"no_subtree_check", ""}},
{ NFSEXP_NOAUTHNLM, {"insecure_locks", ""}},
+ { NFSEXP_V4ROOT, {"v4root", ""}},
#ifdef MSNFS
{ NFSEXP_MSNFS, {"msnfs", ""}},
#endif
@@ -1493,7 +1503,7 @@ static int e_show(struct seq_file *m, vo
struct svc_export *exp = container_of(cp, struct svc_export, h);
if (p == SEQ_START_TOKEN) {
- seq_puts(m, "# Version 1.1\n");
+ seq_puts(m, "# Version 1.2\n");
seq_puts(m, "# Path Client(Flags) # IPs\n");
return 0;
}
diff -up linux-2.6.30.noarch/fs/nfsd/nfs4xdr.c.save linux-2.6.30.noarch/fs/nfsd/nfs4xdr.c
--- linux-2.6.30.noarch/fs/nfsd/nfs4xdr.c.save 2009-07-02 11:34:38.000000000 -0400
+++ linux-2.6.30.noarch/fs/nfsd/nfs4xdr.c 2009-07-02 11:35:31.000000000 -0400
@@ -2176,28 +2176,62 @@ static inline int attributes_need_mount(
return 0;
}
-static __be32
-nfsd4_encode_dirent_fattr(struct nfsd4_readdir *cd,
- const char *name, int namlen, __be32 *p, int *buflen)
+struct dentry *
+nfsd_check_export(struct nfsd4_readdir *cd, const char *name, int namlen)
{
struct svc_export *exp = cd->rd_fhp->fh_export;
struct dentry *dentry;
- __be32 nfserr;
- int ignore_crossmnt = 0;
+ int err;
dentry = lookup_one_len(name, cd->rd_fhp->fh_dentry, namlen);
if (IS_ERR(dentry))
- return nfserrno(PTR_ERR(dentry));
+ return dentry;
if (!dentry->d_inode) {
- /*
- * nfsd_buffered_readdir drops the i_mutex between
- * readdir and calling this callback, leaving a window
- * where this directory entry could have gone away.
- */
dput(dentry);
- return nfserr_noent;
+ return ERR_PTR(-ENOENT);
+ }
+
+ /*
+ * Check to see if this dentry is part
+ * of the psuedo root
+ */
+ if ((exp->ex_flags & NFSEXP_V4ROOT) == 0)
+ return dentry;
+
+ /*
+ * Only exported directories are visable
+ * on psuedo exports
+ */
+ if (!S_ISDIR(dentry->d_inode->i_mode)) {
+ dput(dentry);
+ return ERR_PTR(-ENOENT);
}
+ /*
+ * Make the upcall to see if this directory
+ * is exported.
+ */
+ exp_get(exp);
+ err = nfsd_export_lookup(cd->rd_rqstp, dentry, exp);
+ if (err) {
+ exp_put(exp);
+ dput(dentry);
+ return ERR_PTR(err);
+ }
+ exp_put(exp);
+
+ return dentry;
+}
+
+static __be32
+nfsd4_encode_dirent_fattr(struct nfsd4_readdir *cd,
+ struct dentry *dentry, __be32 *p, int *buflen)
+{
+ struct svc_export *exp = cd->rd_fhp->fh_export;
+ __be32 nfserr;
+ int ignore_crossmnt = 0;
+ int err, v4root = (exp->ex_flags & NFSEXP_V4ROOT);
+
exp_get(exp);
/*
* In the case of a mountpoint, the client may be asking for
@@ -2208,18 +2242,29 @@ nfsd4_encode_dirent_fattr(struct nfsd4_r
*/
if (d_mountpoint(dentry) && !attributes_need_mount(cd->rd_bmval))
ignore_crossmnt = 1;
- else if (d_mountpoint(dentry)) {
- int err;
-
+ else if (d_mountpoint(dentry) || v4root) {
+ /*
+ * Make sure the dentry is viewable on the psuedo export
+ */
+ v4root = (dentry->d_inode && v4root);
+ if (v4root) {
+ err = nfsd_export_lookup(cd->rd_rqstp, dentry, exp);
+ if (err) {
+ nfserr = nfserrno(err);
+ goto out_put;
+ }
+ }
/*
* Why the heck aren't we just using nfsd_lookup??
* Different "."/".." handling? Something else?
* At least, add a comment here to explain....
*/
- err = nfsd_cross_mnt(cd->rd_rqstp, &dentry, &exp);
- if (err) {
- nfserr = nfserrno(err);
- goto out_put;
+ if (d_mountpoint(dentry) || v4root) {
+ err = nfsd_cross_mnt(cd->rd_rqstp, &dentry, &exp);
+ if (err) {
+ nfserr = nfserrno(err);
+ goto out_put;
+ }
}
nfserr = check_nfsd_access(exp, cd->rd_rqstp);
if (nfserr)
@@ -2258,6 +2303,7 @@ nfsd4_encode_dirent(void *ccdv, const ch
struct readdir_cd *ccd = ccdv;
struct nfsd4_readdir *cd = container_of(ccd, struct nfsd4_readdir, common);
int buflen;
+ struct dentry *dentry;
__be32 *p = cd->buffer;
__be32 *cookiep;
__be32 nfserr = nfserr_toosmall;
@@ -2268,19 +2314,40 @@ nfsd4_encode_dirent(void *ccdv, const ch
return 0;
}
+ /*
+ * Do the lookup and make sure the dentry is
+ * visible on the exported directory
+ */
+ dentry = nfsd_check_export(cd, name, namlen);
+ if (IS_ERR(dentry)) {
+ if (PTR_ERR(dentry) == -ENOENT) {
+ cd->common.err = nfs_ok;
+ return 0;
+ }
+ cd->common.err = nfserrno(PTR_ERR(dentry));
+ return -EINVAL;
+ }
+
if (cd->offset)
xdr_encode_hyper(cd->offset, (u64) offset);
buflen = cd->buflen - 4 - XDR_QUADLEN(namlen);
- if (buflen < 0)
+ if (buflen < 0) {
+ dput(dentry);
goto fail;
+ }
*p++ = xdr_one; /* mark entry present */
cookiep = p;
p = xdr_encode_hyper(p, NFS_OFFSET_MAX); /* offset of next entry */
p = xdr_encode_array(p, name, namlen); /* name length & name */
- nfserr = nfsd4_encode_dirent_fattr(cd, name, namlen, p, &buflen);
+ /*
+ * Note: the dput() on the dentry is done in
+ * nfsd4_encode_dirent_fattr() since the dentry can
+ * change when crossing a mount point.
+ */
+ nfserr = nfsd4_encode_dirent_fattr(cd, dentry, p, &buflen);
switch (nfserr) {
case nfs_ok:
p += buflen;
diff -up linux-2.6.30.noarch/fs/nfsd/nfsfh.c.save linux-2.6.30.noarch/fs/nfsd/nfsfh.c
--- linux-2.6.30.noarch/fs/nfsd/nfsfh.c.save 2009-07-02 11:34:38.000000000 -0400
+++ linux-2.6.30.noarch/fs/nfsd/nfsfh.c 2009-07-02 11:35:48.000000000 -0400
@@ -109,6 +109,34 @@ static __be32 nfsd_setuser_and_check_por
return nfserrno(nfsd_setuser(rqstp, exp));
}
+static inline __be32 check_pseudo_root(struct svc_rqst *rqstp,
+ struct dentry *dentry, struct svc_export *exp)
+{
+ int error;
+
+ /*
+ * Only interested in pseudo roots
+ */
+ if (!(exp->ex_flags & NFSEXP_V4ROOT))
+ return nfs_ok;
+
+ /*
+ * Only directories should be on the pseudo root
+ */
+ if (unlikely(!S_ISDIR(dentry->d_inode->i_mode)))
+ return nfserr_stale;
+ /*
+ * Check non-root directories to make sure
+ * they are truly exported
+ */
+ if (unlikely(dentry->d_name.len > 1)) {
+ error = nfsd_export_lookup(rqstp, dentry, exp);
+ return nfserrno(error);
+ }
+
+ return nfs_ok;
+}
+
/*
* Use the given filehandle to look up the corresponding export and
* dentry. On success, the results are used to set fh_export and
@@ -315,6 +343,14 @@ fh_verify(struct svc_rqst *rqstp, struct
error = nfsd_setuser_and_check_port(rqstp, exp);
if (error)
goto out;
+
+ /*
+ * Do some spoof checking if we are on the pseudo root
+ */
+ error = check_pseudo_root(rqstp, dentry, exp);
+ if (error)
+ goto out;
+
}
error = nfsd_mode_check(rqstp, dentry->d_inode->i_mode, type);
diff -up linux-2.6.30.noarch/fs/nfsd/vfs.c.save linux-2.6.30.noarch/fs/nfsd/vfs.c
--- linux-2.6.30.noarch/fs/nfsd/vfs.c.save 2009-07-02 11:34:38.000000000 -0400
+++ linux-2.6.30.noarch/fs/nfsd/vfs.c 2009-07-02 11:35:39.000000000 -0400
@@ -89,6 +89,12 @@ struct raparm_hbucket {
#define RAPARM_HASH_MASK (RAPARM_HASH_SIZE-1)
static struct raparm_hbucket raparm_hash[RAPARM_HASH_SIZE];
+static inline int
+nfsd_v4client(struct svc_rqst *rq)
+{
+ return((rq->rq_prog == NFS_PROGRAM) && (rq->rq_vers == 4));
+}
+
/*
* Called from nfsd_lookup and encode_dirent. Check if we have crossed
* a mount point.
@@ -115,7 +121,8 @@ nfsd_cross_mnt(struct svc_rqst *rqstp, s
path_put(&path);
goto out;
}
- if ((exp->ex_flags & NFSEXP_CROSSMOUNT) || EX_NOHIDE(exp2)) {
+ if (nfsd_v4client(rqstp) ||
+ (exp->ex_flags & NFSEXP_CROSSMOUNT) || EX_NOHIDE(exp2)) {
/* successfully crossed mount point */
/*
* This is subtle: path.dentry is *not* on path.mnt
@@ -134,6 +141,55 @@ out:
return err;
}
+/*
+ * Lookup the export the dentry is on. To be
+ * viewable on an pseudo export, the dentry
+ * has to be an exported directory.
+ */
+int
+nfsd_export_lookup(struct svc_rqst *rqstp, struct dentry *dentry,
+ struct svc_export *exp)
+{
+ struct svc_export *exp2 = NULL;
+ struct path path;
+ int err = 0;
+
+ if ((exp->ex_flags & NFSEXP_V4ROOT) == 0)
+ return 0;
+
+ /*
+ * Make sure the export is the parent of the dentry
+ */
+ if (dentry->d_parent != exp->ex_path.dentry)
+ return 0;
+
+ /*
+ * Only directories are seen on psuedo exports
+ */
+ if (!S_ISDIR(dentry->d_inode->i_mode))
+ return -ENOENT;
+
+ /*
+ * Make the upcall
+ */
+ path.mnt = mntget(exp->ex_path.mnt);
+ path.dentry = dget(dentry);
+ while (d_mountpoint(path.dentry) && follow_down(&path));
+
+ exp2 = rqst_exp_get_by_name(rqstp, &path);
+ if (IS_ERR(exp2))
+ err = PTR_ERR(exp2);
+ else {
+ /*
+ * The export exist so allow the access
+ */
+ exp_put(exp2);
+ }
+
+ dput(path.dentry);
+ mntput(path.mnt);
+ return err;
+}
__be32
nfsd_lookup_dentry(struct svc_rqst *rqstp, struct svc_fh *fhp,
const char *name, unsigned int len,
@@ -143,7 +199,7 @@ nfsd_lookup_dentry(struct svc_rqst *rqst
struct dentry *dparent;
struct dentry *dentry;
__be32 err;
- int host_err;
+ int host_err, v4root;
dprintk("nfsd: nfsd_lookup(fh %s, %.*s)\n", SVCFH_fmt(fhp), len,name);
@@ -155,6 +211,7 @@ nfsd_lookup_dentry(struct svc_rqst *rqst
dparent = fhp->fh_dentry;
exp = fhp->fh_export;
exp_get(exp);
+ v4root = (exp->ex_flags & NFSEXP_V4ROOT);
/* Lookup the name, but don't follow links */
if (isdotent(name, len)) {
@@ -199,9 +256,21 @@ nfsd_lookup_dentry(struct svc_rqst *rqst
if (IS_ERR(dentry))
goto out_nfserr;
/*
+ * The export is a pseudo one, make sure the
+ * dentry is accessible
+ */
+ v4root = (dentry->d_inode && v4root);
+ if (v4root) {
+ host_err = nfsd_export_lookup(rqstp, dentry, exp);
+ if (host_err) {
+ dput(dentry);
+ goto out_nfserr;
+ }
+ }
+ /*
* check if we have crossed a mount point ...
*/
- if (d_mountpoint(dentry)) {
+ if (d_mountpoint(dentry) || v4root) {
if ((host_err = nfsd_cross_mnt(rqstp, &dentry, &exp))) {
dput(dentry);
goto out_nfserr;
diff -up linux-2.6.30.noarch/include/linux/nfsd/export.h.save linux-2.6.30.noarch/include/linux/nfsd/export.h
--- linux-2.6.30.noarch/include/linux/nfsd/export.h.save 2009-07-02 11:34:38.000000000 -0400
+++ linux-2.6.30.noarch/include/linux/nfsd/export.h 2009-07-02 11:35:22.000000000 -0400
@@ -39,7 +39,8 @@
#define NFSEXP_FSID 0x2000
#define NFSEXP_CROSSMOUNT 0x4000
#define NFSEXP_NOACL 0x8000 /* reserved for possible ACL related use */
-#define NFSEXP_ALLFLAGS 0xFE3F
+#define NFSEXP_V4ROOT 0x10000
+#define NFSEXP_ALLFLAGS 0x1FE3F
/* The flags that may vary depending on security flavor: */
#define NFSEXP_SECINFO_FLAGS (NFSEXP_READONLY | NFSEXP_ROOTSQUASH \
diff -up linux-2.6.30.noarch/include/linux/nfsd/nfsd.h.save linux-2.6.30.noarch/include/linux/nfsd/nfsd.h
--- linux-2.6.30.noarch/include/linux/nfsd/nfsd.h.save 2009-07-02 11:34:38.000000000 -0400
+++ linux-2.6.30.noarch/include/linux/nfsd/nfsd.h 2009-07-02 11:35:27.000000000 -0400
@@ -76,6 +76,8 @@ int nfsd_racache_init(int);
void nfsd_racache_shutdown(void);
int nfsd_cross_mnt(struct svc_rqst *rqstp, struct dentry **dpp,
struct svc_export **expp);
+int nfsd_export_lookup(struct svc_rqst *rqstp, struct dentry *dpp,
+ struct svc_export *exp);
__be32 nfsd_lookup(struct svc_rqst *, struct svc_fh *,
const char *, unsigned int, struct svc_fh *);
__be32 nfsd_lookup_dentry(struct svc_rqst *, struct svc_fh *,
linux-2.6.31-lirc.patch:
--- NEW FILE linux-2.6.31-lirc.patch ---
Linux Infrared Remote Control drivers -- http://www.lirc.org
Last updated: Tuesday, July 7, 2009
>From http://git.wilsonet.com/linux-2.6-lirc.git/
Signed-off-by: Jarod Wilson <jarod at redhat.com>
---
MAINTAINERS | 9 +
drivers/input/Kconfig | 2 +
drivers/input/Makefile | 2 +
drivers/input/lirc/Kconfig | 112 ++
drivers/input/lirc/Makefile | 20 +
drivers/input/lirc/lirc.h | 100 ++
drivers/input/lirc/lirc_bt829.c | 383 ++++++
drivers/input/lirc/lirc_dev.c | 851 ++++++++++++++
drivers/input/lirc/lirc_dev.h | 184 +++
drivers/input/lirc/lirc_i2c.c | 537 +++++++++
drivers/input/lirc/lirc_igorplugusb.c | 556 +++++++++
drivers/input/lirc/lirc_imon.c | 2062 +++++++++++++++++++++++++++++++++
drivers/input/lirc/lirc_it87.c | 986 ++++++++++++++++
drivers/input/lirc/lirc_it87.h | 116 ++
drivers/input/lirc/lirc_ite8709.c | 539 +++++++++
drivers/input/lirc/lirc_mceusb.c | 1223 +++++++++++++++++++
drivers/input/lirc/lirc_parallel.c | 709 +++++++++++
drivers/input/lirc/lirc_parallel.h | 26 +
drivers/input/lirc/lirc_sasem.c | 931 +++++++++++++++
drivers/input/lirc/lirc_serial.c | 1316 +++++++++++++++++++++
drivers/input/lirc/lirc_sir.c | 1294 +++++++++++++++++++++
drivers/input/lirc/lirc_streamzap.c | 777 +++++++++++++
drivers/input/lirc/lirc_ttusbir.c | 397 +++++++
drivers/input/lirc/lirc_zilog.c | 1374 ++++++++++++++++++++++
24 files changed, 14506 insertions(+), 0 deletions(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index 381190c..fc79bdf 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3632,6 +3632,15 @@ W: http://www.pasemi.com/
L: linuxppc-dev at ozlabs.org
S: Supported
+LINUX INFRARED REMOTE CONTROL DRIVERS (LIRC)
+P: Jarod Wilson
+M: jarod at redhat.com
+P: Christoph Bartelmus
+M: lirc at bartelmus.de
+W: http://www.lirc.org/
+L: lirc-list at lists.sourceforge.net
+S: Maintained
+
LINUX SECURITY MODULE (LSM) FRAMEWORK
P: Chris Wright
M: chrisw at sous-sol.org
diff --git a/drivers/input/Kconfig b/drivers/input/Kconfig
index cd50c00..442f94f 100644
--- a/drivers/input/Kconfig
+++ b/drivers/input/Kconfig
@@ -170,6 +170,8 @@ source "drivers/input/tablet/Kconfig"
source "drivers/input/touchscreen/Kconfig"
+source "drivers/input/lirc/Kconfig"
+
source "drivers/input/misc/Kconfig"
endif
diff --git a/drivers/input/Makefile b/drivers/input/Makefile
index 4c9c745..99e2b5e 100644
--- a/drivers/input/Makefile
+++ b/drivers/input/Makefile
@@ -25,3 +25,5 @@ obj-$(CONFIG_INPUT_MISC) += misc/
obj-$(CONFIG_INPUT_APMPOWER) += apm-power.o
obj-$(CONFIG_XEN_KBDDEV_FRONTEND) += xen-kbdfront.o
+
+obj-$(CONFIG_INPUT_LIRC) += lirc/
diff --git a/drivers/input/lirc/Kconfig b/drivers/input/lirc/Kconfig
new file mode 100644
index 0000000..6ef8622
--- /dev/null
+++ b/drivers/input/lirc/Kconfig
@@ -0,0 +1,112 @@
+#
+# LIRC driver(s) configuration
+#
+menuconfig INPUT_LIRC
+ bool "Linux Infrared Remote Control IR receiver/transmitter drivers"
+ help
+ Say Y here, and all supported Linux Infrared Remote Control IR and
+ RF receiver and transmitter drivers will be displayed. When paired
+ with a remote control and the lirc daemon, the receiver drivers
+ allow control of your Linux system via remote control.
+
+if INPUT_LIRC
+
+config LIRC_DEV
+ tristate "LIRC device loadable module support"
+ help
+ LIRC device loadable module support, required for most LIRC drivers
+
+config LIRC_BT829
+ tristate "BT829 based hardware"
+ depends on LIRC_DEV
+ help
+ Driver for the IR interface on BT829-based hardware
+
+config LIRC_I2C
+ tristate "I2C Based IR Receivers"
+ depends on LIRC_DEV
+ help
+ Driver for I2C-based IR receivers, such as those commonly
+ found onboard Hauppauge PVR-150/250/350 video capture cards
+
+config LIRC_IGORPLUGUSB
+ tristate "Igor Cesko's USB IR Receiver"
+ depends on LIRC_DEV && USB
+ help
+ Driver for Igor Cesko's USB IR Receiver
+
+config LIRC_IMON
+ tristate "Soundgraph IMON Receiver"
+ depends on LIRC_DEV
+ help
+ Driver for the Soundgraph IMON IR Receiver
+
+config LIRC_IT87
+ tristate "ITE IT87XX CIR Port Receiver"
+ depends on LIRC_DEV
+ help
+ Driver for the ITE IT87xx IR Receiver
+
+config LIRC_ITE8709
+ tristate "ITE8709 CIR Port Receiver"
+ depends on LIRC_DEV && PNP
+ help
+ Driver for the ITE8709 IR Receiver
+
+config LIRC_MCEUSB
+ tristate "Windows Media Center Ed. USB IR Transceiver"
+ depends on LIRC_DEV && USB
+ help
+ Driver for Windows Media Center Ed. USB IR Transceivers
+
+config LIRC_PARALLEL
+ tristate "Homebrew Parallel Port Receiver"
+ depends on LIRC_DEV && !SMP
+ help
+ Driver for Homebrew Parallel Port Receivers
+
+config LIRC_SASEM
+ tristate "Sasem USB IR Remote"
+ depends on LIRC_DEV
+ help
+ Driver for the Sasem OnAir Remocon-V or Dign HV5 HTPC IR/VFD Module
+
+config LIRC_SERIAL
+ tristate "Homebrew Serial Port Receiver"
+ depends on LIRC_DEV
+ help
+ Driver for Homebrew Serial Port Receivers
+
+config LIRC_SERIAL_TRANSMITTER
+ bool "Serial Port Transmitter"
+ default y
+ depends on LIRC_SERIAL
+ help
+ Serial Port Transmitter support
+
+config LIRC_SIR
+ tristate "Built-in SIR IrDA port"
+ depends on LIRC_DEV
+ help
+ Driver for the SIR IrDA port
+
+config LIRC_STREAMZAP
+ tristate "Streamzap PC Receiver"
+ depends on LIRC_DEV
+ help
+ Driver for the Streamzap PC Receiver
+
+config LIRC_TTUSBIR
+ tristate "Technotrend USB IR Receiver"
+ depends on LIRC_DEV && USB
+ help
+ Driver for the Technotrend USB IR Receiver
+
+config LIRC_ZILOG
+ tristate "Zilog/Hauppauge IR Transmitter"
+ depends on LIRC_DEV
+ help
+ Driver for the Zilog/Hauppauge IR Transmitter, found on
+ PVR-150/500, HVR-1200/1250/1700/1800, HD-PVR and other cards
+
+endif
diff --git a/drivers/input/lirc/Makefile b/drivers/input/lirc/Makefile
new file mode 100644
index 0000000..7b1386e
[...14298 lines suppressed...]
+ ir->task = kthread_run(lirc_thread, ir, "lirc_zilog");
+ if (IS_ERR(ir->task)) {
+ ret = PTR_ERR(ir->task);
+ zilog_error("lirc_register_driver: cannot run "
+ "poll thread %d\n", ret);
+ goto err;
+ }
+ wait_for_completion(&tn);
+ ir->t_notify = NULL;
+ }
+
+ /* initialise TX device */
+ memcpy(&ir->c_tx, &client_template, sizeof(struct i2c_client));
+ if (have_tx) {
+ /* I2C attach to device */
+ ir->c_tx.addr = 0x70;
+ strncpy(ir->c_tx.name, "Zilog/Hauppauge TX", I2C_NAME_SIZE);
+ ret = i2c_attach(&ir->c_tx, ir);
+ if (ret != 0)
+ goto err;
+ }
+
+ /* set lirc_dev stuff */
+ ir->l.code_length = 13;
+ ir->l.rbuf = &ir->buf;
+ ir->l.fops = &lirc_fops;
+ ir->l.data = ir;
+ ir->l.minor = minor;
+ ir->l.sample_rate = 0;
+
+ /* register with lirc */
+ ir->l.minor = lirc_register_driver(&ir->l);
+ if (ir->l.minor < 0 || ir->l.minor >= MAX_IRCTL_DEVICES) {
+ zilog_error("ir_attach: \"minor\" must be between 0 and %d "
+ "(%d)!\n", MAX_IRCTL_DEVICES-1, ir->l.minor);
+ ret = -EBADRQC;
+ goto err;
+ }
+
+ /* store this for getting back in open() later on */
+ ir_devices[ir->l.minor] = ir;
+
+ /*
+ * if we have the tx device, load the 'firmware'. We do this
+ * after registering with lirc as otherwise hotplug seems to take
+ * 10s to create the lirc device.
+ */
+ if (have_tx) {
+ /* Special TX init */
+ ret = tx_init(ir);
+ if (ret != 0)
+ goto err;
+ }
+ return 0;
+
+err:
+ /* undo everything, hopefully... */
+ if (ir->c_rx.addr)
+ ir_remove(&ir->c_rx);
+ if (ir->c_tx.addr)
+ ir_remove(&ir->c_tx);
+ return ret;
+}
+
+static int ir_remove(struct i2c_client *client)
+{
+ struct IR *ir = i2c_get_clientdata(client);
+ mutex_lock(&ir->lock);
+
+ if (client == &ir->c_rx) {
+ DECLARE_COMPLETION(tn);
+ DECLARE_COMPLETION(tn2);
+
+ /* end up polling thread */
+ if (ir->task && !IS_ERR(ir->task)) {
+ ir->t_notify = &tn;
+ ir->t_notify2 = &tn2;
+ ir->shutdown = 1;
+ wake_up_process(ir->task);
+ complete(&tn2);
+ wait_for_completion(&tn);
+ ir->t_notify = NULL;
+ ir->t_notify2 = NULL;
+ }
+
+ } else {
+ mutex_unlock(&ir->lock);
+ zilog_error("%s: detached from something we didn't "
+ "attach to\n", __func__);
+ return -ENODEV;
+ }
+
+ --ir->devs;
+ if (ir->devs < 0) {
+ mutex_unlock(&ir->lock);
+ zilog_error("%s: invalid device count\n", __func__);
+ return -ENODEV;
+ } else if (ir->devs == 0) {
+ /* unregister lirc driver */
+ if (ir->l.minor >= 0 && ir->l.minor < MAX_IRCTL_DEVICES) {
+ lirc_unregister_driver(ir->l.minor);
+ ir_devices[ir->l.minor] = NULL;
+ }
+
+ /* free memory */
+ lirc_buffer_free(&ir->buf);
+ mutex_unlock(&ir->lock);
+ kfree(ir);
+ return 0;
+ }
+ mutex_unlock(&ir->lock);
+ return 0;
+}
+
+static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
+{
+ struct i2c_adapter *adap = client->adapter;
+ char buf;
+
+ if (adap->id == I2C_HW_B_BT848 ||
+#ifdef I2C_HW_B_HDPVR
+ adap->id == I2C_HW_B_HDPVR ||
+#endif
+ adap->id == I2C_HW_B_CX2341X) {
+ int have_rx = 0, have_tx = 0;
+
+ /*
+ * The external IR receiver is at i2c address 0x71.
+ * The IR transmitter is at 0x70.
+ */
+ client->addr = 0x70;
+
+ if (!disable_rx) {
+ if (i2c_master_recv(client, &buf, 1) == 1)
+ have_rx = 1;
+ dprintk("probe 0x70 @ %s: %s\n",
+ adap->name,
+ have_rx ? "yes" : "no");
+ }
+
+ if (!disable_tx) {
+ client->addr = 0x71;
+ if (i2c_master_recv(client, &buf, 1) == 1)
+ have_tx = 1;
+ dprintk("probe 0x71 @ %s: %s\n",
+ adap->name,
+ have_tx ? "yes" : "no");
+ }
+
+ if (have_rx || have_tx)
+ return ir_attach(adap, have_rx, have_tx);
+ else
+ zilog_error("%s: no devices found\n", adap->name);
+ }
+
+ return 0;
+}
+
+static int ir_command(struct i2c_client *client, unsigned int cmd, void *arg)
+{
+ /* nothing */
+ return 0;
+}
+
+static int __init zilog_init(void)
+{
+ mutex_init(&tx_data_lock);
+ request_module("firmware_class");
+ i2c_add_driver(&driver);
+ return 0;
+}
+
+static void __exit zilog_exit(void)
+{
+ i2c_del_driver(&driver);
+ /* if loaded */
+ fw_unload();
+}
+
+module_init(zilog_init);
+module_exit(zilog_exit);
+
+MODULE_DESCRIPTION("Zilog/Hauppauge infrared transmitter driver (i2c stack)");
+MODULE_AUTHOR("Gerd Knorr, Michal Kochanowicz, Christoph Bartelmus, "
+ "Ulrich Mueller, Stefan Jahn, Jerome Brock, Mark Weaver");
+MODULE_LICENSE("GPL");
+/* for compat with old name, which isn't all that accurate anymore */
+MODULE_ALIAS("lirc_pvr150");
+
+module_param(minor, int, 0444);
+MODULE_PARM_DESC(minor, "Preferred minor device number");
+
+module_param(debug, bool, 0644);
+MODULE_PARM_DESC(debug, "Enable debugging messages");
+
+module_param(disable_rx, bool, 0644);
+MODULE_PARM_DESC(disable_rx, "Disable the IR receiver device");
+
+module_param(disable_tx, bool, 0644);
+MODULE_PARM_DESC(disable_tx, "Disable the IR transmitter device");
lirc_streamzap-buffer-rework.patch:
--- NEW FILE lirc_streamzap-buffer-rework.patch ---
Rework the lirc_streamzap buffers a bit, see if we can't get it behaving
better when the receiver is pulled... (rhbz#508952)
---
drivers/input/lirc/lirc_streamzap.c | 207 +++++++++++++++++++----------------
1 files changed, 112 insertions(+), 95 deletions(-)
diff --git a/drivers/input/lirc/lirc_streamzap.c b/drivers/input/lirc/lirc_streamzap.c
index d1ce354..a5f3140 100644
--- a/drivers/input/lirc/lirc_streamzap.c
+++ b/drivers/input/lirc/lirc_streamzap.c
@@ -73,7 +73,7 @@ MODULE_DEVICE_TABLE(usb, streamzap_table);
#define STREAMZAP_RESOLUTION 256
/* number of samples buffered */
-#define STREAMZAP_BUFFER_SIZE 128
+#define STREAMZAP_BUF_LEN 128
enum StreamzapDecoderState {
PulseSpace,
@@ -121,9 +121,8 @@ struct usb_streamzap {
struct urb *urb_in;
/* lirc */
- struct lirc_driver driver;
- struct lirc_buffer delay_buf;
- struct lirc_buffer lirc_buf;
+ struct lirc_driver *driver;
+ struct lirc_buffer *delay_buf;
/* timer used to support delay buffering */
struct timer_list delay_timer;
@@ -199,18 +198,18 @@ static void delay_timeout(unsigned long arg)
spin_lock_irqsave(&sz->timer_lock, flags);
- if (!lirc_buffer_empty(&sz->delay_buf) &&
- !lirc_buffer_full(&sz->lirc_buf)) {
- lirc_buffer_read(&sz->delay_buf, (unsigned char *) &data);
- lirc_buffer_write(&sz->lirc_buf, (unsigned char *) &data);
+ if (!lirc_buffer_empty(sz->delay_buf) &&
+ !lirc_buffer_full(sz->driver->rbuf)) {
+ lirc_buffer_read(sz->delay_buf, (unsigned char *) &data);
+ lirc_buffer_write(sz->driver->rbuf, (unsigned char *) &data);
}
- if (!lirc_buffer_empty(&sz->delay_buf)) {
- while (lirc_buffer_available(&sz->delay_buf) <
- STREAMZAP_BUFFER_SIZE/2 &&
- !lirc_buffer_full(&sz->lirc_buf)) {
- lirc_buffer_read(&sz->delay_buf,
+ if (!lirc_buffer_empty(sz->delay_buf)) {
+ while (lirc_buffer_available(sz->delay_buf) <
+ STREAMZAP_BUF_LEN / 2 &&
+ !lirc_buffer_full(sz->driver->rbuf)) {
+ lirc_buffer_read(sz->delay_buf,
(unsigned char *) &data);
- lirc_buffer_write(&sz->lirc_buf,
+ lirc_buffer_write(sz->driver->rbuf,
(unsigned char *) &data);
}
if (sz->timer_running) {
@@ -221,8 +220,8 @@ static void delay_timeout(unsigned long arg)
sz->timer_running = 0;
}
- if (!lirc_buffer_empty(&sz->lirc_buf))
- wake_up(&sz->lirc_buf.wait_poll);
+ if (!lirc_buffer_empty(sz->driver->rbuf))
+ wake_up(&sz->driver->rbuf->wait_poll);
spin_unlock_irqrestore(&sz->timer_lock, flags);
}
@@ -232,18 +231,18 @@ static void flush_delay_buffer(struct usb_streamzap *sz)
int data;
int empty = 1;
- while (!lirc_buffer_empty(&sz->delay_buf)) {
+ while (!lirc_buffer_empty(sz->delay_buf)) {
empty = 0;
- lirc_buffer_read(&sz->delay_buf, (unsigned char *) &data);
- if (!lirc_buffer_full(&sz->lirc_buf)) {
- lirc_buffer_write(&sz->lirc_buf,
+ lirc_buffer_read(sz->delay_buf, (unsigned char *) &data);
+ if (!lirc_buffer_full(sz->driver->rbuf)) {
+ lirc_buffer_write(sz->driver->rbuf,
(unsigned char *) &data);
} else {
- dprintk("buffer overflow", sz->driver.minor);
+ dprintk("buffer overflow", sz->driver->minor);
}
}
if (!empty)
- wake_up(&sz->lirc_buf.wait_poll);
+ wake_up(&sz->driver->rbuf->wait_poll);
}
static void push(struct usb_streamzap *sz, unsigned char *data)
@@ -251,20 +250,20 @@ static void push(struct usb_streamzap *sz, unsigned char *data)
unsigned long flags;
spin_lock_irqsave(&sz->timer_lock, flags);
- if (lirc_buffer_full(&sz->delay_buf)) {
+ if (lirc_buffer_full(sz->delay_buf)) {
int read_data;
- lirc_buffer_read(&sz->delay_buf,
+ lirc_buffer_read(sz->delay_buf,
(unsigned char *) &read_data);
- if (!lirc_buffer_full(&sz->lirc_buf)) {
- lirc_buffer_write(&sz->lirc_buf,
+ if (!lirc_buffer_full(sz->driver->rbuf)) {
+ lirc_buffer_write(sz->driver->rbuf,
(unsigned char *) &read_data);
} else {
- dprintk("buffer overflow", sz->driver.minor);
+ dprintk("buffer overflow", sz->driver->minor);
}
}
- lirc_buffer_write(&sz->delay_buf, data);
+ lirc_buffer_write(sz->delay_buf, data);
if (!sz->timer_running) {
sz->delay_timer.expires = jiffies + HZ/10;
@@ -296,7 +295,7 @@ static void push_full_pulse(struct usb_streamzap *sz,
sz->signal_last.tv_usec);
tmp -= sz->sum;
}
- dprintk("ls %u", sz->driver.minor, tmp);
+ dprintk("ls %u", sz->driver->minor, tmp);
push(sz, (char *)&tmp);
sz->idle = 0;
@@ -308,7 +307,7 @@ static void push_full_pulse(struct usb_streamzap *sz,
sz->sum += pulse;
pulse |= PULSE_BIT;
- dprintk("p %u", sz->driver.minor, pulse & PULSE_MASK);
+ dprintk("p %u", sz->driver->minor, pulse & PULSE_MASK);
push(sz, (char *)&pulse);
}
@@ -326,7 +325,7 @@ static void push_full_space(struct usb_streamzap *sz,
space = ((int) value)*STREAMZAP_RESOLUTION;
space += STREAMZAP_RESOLUTION/2;
sz->sum += space;
- dprintk("s %u", sz->driver.minor, space);
+ dprintk("s %u", sz->driver->minor, space);
push(sz, (char *)&space);
}
@@ -368,10 +367,10 @@ static void usb_streamzap_irq(struct urb *urb)
break;
}
- dprintk("received %d", sz->driver.minor, urb->actual_length);
+ dprintk("received %d", sz->driver->minor, urb->actual_length);
if (!sz->flush) {
for (i = 0; i < urb->actual_length; i++) {
- dprintk("%d: %x", sz->driver.minor,
+ dprintk("%d: %x", sz->driver->minor,
i, (unsigned char) sz->buf_in[i]);
switch (sz->decoder_state) {
case PulseSpace:
@@ -443,14 +442,18 @@ static int streamzap_probe(struct usb_interface *interface,
{
struct usb_device *udev = interface_to_usbdev(interface);
struct usb_host_interface *iface_host;
- int retval = -ENOMEM;
- struct usb_streamzap *sz = NULL;
+ struct usb_streamzap *sz;
+ struct lirc_driver *driver;
+ struct lirc_buffer *lirc_buf;
+ struct lirc_buffer *delay_buf;
char buf[63], name[128] = "";
+ int retval = -ENOMEM;
+ int minor = 0;
/* Allocate space for device driver specific data */
sz = kzalloc(sizeof(struct usb_streamzap), GFP_KERNEL);
if (sz == NULL)
- goto error;
+ return -ENOMEM;
sz->udev = udev;
sz->interface = interface;
@@ -462,7 +465,7 @@ static int streamzap_probe(struct usb_interface *interface,
err("%s: Unexpected desc.bNumEndpoints (%d)", __func__,
iface_host->desc.bNumEndpoints);
retval = -ENODEV;
- goto error;
+ goto free_sz;
}
sz->endpoint = &(iface_host->endpoint[0].desc);
@@ -471,7 +474,7 @@ static int streamzap_probe(struct usb_interface *interface,
err("%s: endpoint doesn't match input device 02%02x",
__func__, sz->endpoint->bEndpointAddress);
retval = -ENODEV;
- goto error;
+ goto free_sz;
}
if ((sz->endpoint->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK)
@@ -479,13 +482,13 @@ static int streamzap_probe(struct usb_interface *interface,
err("%s: endpoint attributes don't match xfer 02%02x",
__func__, sz->endpoint->bmAttributes);
retval = -ENODEV;
- goto error;
+ goto free_sz;
}
if (sz->endpoint->wMaxPacketSize == 0) {
err("%s: endpoint message size==0? ", __func__);
retval = -ENODEV;
- goto error;
+ goto free_sz;
}
/* Allocate the USB buffer and IRQ URB */
@@ -494,36 +497,43 @@ static int streamzap_probe(struct usb_interface *interface,
sz->buf_in = usb_buffer_alloc(sz->udev, sz->buf_in_len,
GFP_ATOMIC, &sz->dma_in);
if (sz->buf_in == NULL)
- goto error;
+ goto free_sz;
sz->urb_in = usb_alloc_urb(0, GFP_KERNEL);
if (sz->urb_in == NULL)
- goto error;
+ goto free_sz;
/* Connect this device to the LIRC sub-system */
-
- if (lirc_buffer_init(&sz->lirc_buf, sizeof(int),
- STREAMZAP_BUFFER_SIZE))
- goto error;
-
- if (lirc_buffer_init(&sz->delay_buf, sizeof(int),
- STREAMZAP_BUFFER_SIZE)) {
- lirc_buffer_free(&sz->lirc_buf);
- goto error;
- }
-
- strcpy(sz->driver.name, DRIVER_NAME);
- sz->driver.minor = -1;
- sz->driver.sample_rate = 0;
- sz->driver.code_length = sizeof(int) * 8;
- sz->driver.features = LIRC_CAN_REC_MODE2 | LIRC_CAN_GET_REC_RESOLUTION;
- sz->driver.data = sz;
- sz->driver.rbuf = &sz->lirc_buf;
- sz->driver.set_use_inc = &streamzap_use_inc;
- sz->driver.set_use_dec = &streamzap_use_dec;
- sz->driver.fops = &streamzap_fops;
- sz->driver.dev = &interface->dev;
- sz->driver.owner = THIS_MODULE;
+ driver = kzalloc(sizeof(struct lirc_driver), GFP_KERNEL);
+ if (!driver)
+ goto free_sz;
+
+ lirc_buf = kmalloc(sizeof(struct lirc_buffer), GFP_KERNEL);
+ if (!lirc_buf)
+ goto free_driver;
+ if (lirc_buffer_init(lirc_buf, sizeof(int), STREAMZAP_BUF_LEN))
+ goto kfree_lirc_buf;
+
+ delay_buf = kmalloc(sizeof(struct lirc_buffer), GFP_KERNEL);
+ if (!delay_buf)
+ goto free_lirc_buf;
+ if (lirc_buffer_init(delay_buf, sizeof(int), STREAMZAP_BUF_LEN))
+ goto kfree_delay_buf;
+
+ sz->driver = driver;
+ strcpy(sz->driver->name, DRIVER_NAME);
+ sz->driver->minor = -1;
+ sz->driver->sample_rate = 0;
+ sz->driver->code_length = sizeof(int) * 8;
+ sz->driver->features = LIRC_CAN_REC_MODE2 | LIRC_CAN_GET_REC_RESOLUTION;
+ sz->driver->data = sz;
+ sz->driver->rbuf = lirc_buf;
+ sz->delay_buf = delay_buf;
+ sz->driver->set_use_inc = &streamzap_use_inc;
+ sz->driver->set_use_dec = &streamzap_use_dec;
+ sz->driver->fops = &streamzap_fops;
+ sz->driver->dev = &interface->dev;
+ sz->driver->owner = THIS_MODULE;
sz->idle = 1;
sz->decoder_state = PulseSpace;
@@ -556,28 +566,32 @@ static int streamzap_probe(struct usb_interface *interface,
snprintf(name + strlen(name), sizeof(name) - strlen(name),
" %s", buf);
- printk(KERN_INFO DRIVER_NAME "[%d]: %s on usb%d:%d attached\n",
- sz->driver.minor, name,
- udev->bus->busnum, sz->udev->devnum);
+ minor = lirc_register_driver(driver);
- usb_set_intfdata(interface, sz);
+ if (minor < 0)
+ goto free_delay_buf;
- if (lirc_register_driver(&sz->driver) < 0) {
- lirc_buffer_free(&sz->delay_buf);
- lirc_buffer_free(&sz->lirc_buf);
- goto error;
- }
+ sz->driver->minor = minor;
- return 0;
+ usb_set_intfdata(interface, sz);
-error:
+ printk(KERN_INFO DRIVER_NAME "[%d]: %s on usb%d:%d attached\n",
+ sz->driver->minor, name,
+ udev->bus->busnum, sz->udev->devnum);
- /*
- * Premise is that a 'goto error' can be invoked from inside the
- * probe function and all necessary cleanup actions will be taken
- * including freeing any necessary memory blocks
- */
+ return 0;
+free_delay_buf:
+ lirc_buffer_free(sz->delay_buf);
+kfree_delay_buf:
+ kfree(delay_buf);
+free_lirc_buf:
+ lirc_buffer_free(sz->driver->rbuf);
+kfree_lirc_buf:
+ kfree(lirc_buf);
+free_driver:
+ kfree(driver);
+free_sz:
if (retval == -ENOMEM)
err("Out of memory");
@@ -598,10 +612,10 @@ static int streamzap_use_inc(void *data)
dprintk("%s called with no context", -1, __func__);
return -EINVAL;
}
- dprintk("set use inc", sz->driver.minor);
+ dprintk("set use inc", sz->driver->minor);
- lirc_buffer_clear(&sz->lirc_buf);
- lirc_buffer_clear(&sz->delay_buf);
+ lirc_buffer_clear(sz->driver->rbuf);
+ lirc_buffer_clear(sz->delay_buf);
sz->flush_timer.expires = jiffies + HZ;
sz->flush = 1;
@@ -610,7 +624,7 @@ static int streamzap_use_inc(void *data)
sz->urb_in->dev = sz->udev;
if (usb_submit_urb(sz->urb_in, GFP_ATOMIC)) {
dprintk("open result = -EIO error submitting urb",
- sz->driver.minor);
+ sz->driver->minor);
return -EIO;
}
sz->in_use++;
@@ -626,7 +640,7 @@ static void streamzap_use_dec(void *data)
dprintk("%s called with no context", -1, __func__);
return;
}
- dprintk("set use dec", sz->driver.minor);
+ dprintk("set use dec", sz->driver->minor);
if (sz->flush) {
sz->flush = 0;
@@ -677,13 +691,13 @@ static void streamzap_disconnect(struct usb_interface *interface)
/* unregister from the LIRC sub-system */
- errnum = lirc_unregister_driver(sz->driver.minor);
+ errnum = lirc_unregister_driver(sz->driver->minor);
if (errnum != 0)
dprintk("error in lirc_unregister: (returned %d)",
- sz->driver.minor, errnum);
+ sz->driver->minor, errnum);
- lirc_buffer_free(&sz->delay_buf);
- lirc_buffer_free(&sz->lirc_buf);
+ lirc_buffer_free(sz->delay_buf);
+ lirc_buffer_free(sz->driver->rbuf);
/* unregister from the USB sub-system */
@@ -691,7 +705,10 @@ static void streamzap_disconnect(struct usb_interface *interface)
usb_buffer_free(sz->udev, sz->buf_in_len, sz->buf_in, sz->dma_in);
- minor = sz->driver.minor;
+ minor = sz->driver->minor;
+ kfree(sz->driver->rbuf);
+ kfree(sz->driver);
+ kfree(sz->delay_buf);
kfree(sz);
printk(KERN_INFO DRIVER_NAME "[%d]: disconnected\n", minor);
@@ -701,7 +718,7 @@ static int streamzap_suspend(struct usb_interface *intf, pm_message_t message)
{
struct usb_streamzap *sz = usb_get_intfdata(intf);
- printk(KERN_INFO DRIVER_NAME "[%d]: suspend\n", sz->driver.minor);
+ printk(KERN_INFO DRIVER_NAME "[%d]: suspend\n", sz->driver->minor);
if (sz->in_use) {
if (sz->flush) {
sz->flush = 0;
@@ -719,8 +736,8 @@ static int streamzap_resume(struct usb_interface *intf)
{
struct usb_streamzap *sz = usb_get_intfdata(intf);
- lirc_buffer_clear(&sz->lirc_buf);
- lirc_buffer_clear(&sz->delay_buf);
+ lirc_buffer_clear(sz->driver->rbuf);
+ lirc_buffer_clear(sz->delay_buf);
if (sz->in_use) {
sz->flush_timer.expires = jiffies + HZ;
@@ -730,7 +747,7 @@ static int streamzap_resume(struct usb_interface *intf)
sz->urb_in->dev = sz->udev;
if (usb_submit_urb(sz->urb_in, GFP_ATOMIC)) {
dprintk("open result = -EIO error submitting urb",
- sz->driver.minor);
+ sz->driver->minor);
return -EIO;
}
}
--- NEW FILE patch-2.6.31-rc2-git2.bz2.sign ---
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: See http://www.kernel.org/signature.html for info
iD8DBQBKUzkByGugalF9Dw4RAhMUAJsFTFG/34PWU7+VxOLQsnziUcGnGgCgkfdS
wfsc9Jpeko6on7CJM0AXYeo=
=tXBf
-----END PGP SIGNATURE-----
--- NEW FILE patch-2.6.31-rc2.bz2.sign ---
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: See http://www.kernel.org/signature.html for info
iD8DBQBKT6oJyGugalF9Dw4RAhW7AJ9tjkuhQjP7FpuuGM4af9CeAgqBnACgjeMK
EibqVGTKHPjKEH93EpwzAVc=
=X1d9
-----END PGP SIGNATURE-----
Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/.cvsignore,v
retrieving revision 1.1014.2.18
retrieving revision 1.1014.2.19
diff -u -p -r1.1014.2.18 -r1.1014.2.19
--- .cvsignore 3 Jul 2009 18:54:45 -0000 1.1014.2.18
+++ .cvsignore 9 Jul 2009 22:52:59 -0000 1.1014.2.19
@@ -5,5 +5,5 @@ kernel-2.6.*.config
temp-*
kernel-2.6.30
linux-2.6.30.tar.bz2
-patch-2.6.31-rc1.bz2
-patch-2.6.31-rc1-git9.bz2
+patch-2.6.31-rc2.bz2
+patch-2.6.31-rc2-git2.bz2
Index: config-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/config-generic,v
retrieving revision 1.238.6.27
retrieving revision 1.238.6.28
diff -u -p -r1.238.6.27 -r1.238.6.28
--- config-generic 3 Jul 2009 18:54:45 -0000 1.238.6.27
+++ config-generic 9 Jul 2009 22:53:00 -0000 1.238.6.28
@@ -3804,7 +3804,6 @@ CONFIG_LIRC_IMON=m
CONFIG_LIRC_IT87=m
CONFIG_LIRC_ITE8709=m
CONFIG_LIRC_MCEUSB=m
-CONFIG_LIRC_MCEUSB2=m
CONFIG_LIRC_ZILOG=m
CONFIG_LIRC_PARALLEL=m
CONFIG_LIRC_SERIAL=m
Index: config-x86-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/config-x86-generic,v
retrieving revision 1.68.6.12
retrieving revision 1.68.6.13
diff -u -p -r1.68.6.12 -r1.68.6.13
--- config-x86-generic 27 Jun 2009 11:05:10 -0000 1.68.6.12
+++ config-x86-generic 9 Jul 2009 22:53:00 -0000 1.68.6.13
@@ -1,5 +1,6 @@
CONFIG_UID16=y
# CONFIG_64BIT is not set
+CONFIG_KERNEL_LZMA=y
#
# Processor type and features
@@ -88,7 +89,7 @@ CONFIG_FB_EFI=y
# CONFIG_FB_N411 is not set
CONFIG_DMAR=y
-# CONFIG_DMAR_GFX_WA is not set
+CONFIG_DMAR_BROKEN_GFX_WA=y
CONFIG_DMAR_FLOPPY_WA=y
# CONFIG_DMAR_DEFAULT_ON is not set
Index: config-x86_64-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/config-x86_64-generic,v
retrieving revision 1.68.2.11
retrieving revision 1.68.2.12
diff -u -p -r1.68.2.11 -r1.68.2.12
--- config-x86_64-generic 27 Jun 2009 11:05:10 -0000 1.68.2.11
+++ config-x86_64-generic 9 Jul 2009 22:53:00 -0000 1.68.2.12
@@ -1,5 +1,7 @@
CONFIG_64BIT=y
CONFIG_UID16=y
+CONFIG_KERNEL_LZMA=y
+
# CONFIG_MK8 is not set
# CONFIG_MPSC is not set
CONFIG_GENERIC_CPU=y
@@ -32,7 +34,7 @@ CONFIG_EDD=m
CONFIG_PCI_BIOS=y
CONFIG_PCI_MMCONFIG=y
CONFIG_DMAR=y
-# CONFIG_DMAR_GFX_WA is not set
+CONFIG_DMAR_BROKEN_GFX_WA=y
CONFIG_DMAR_FLOPPY_WA=y
# CONFIG_DMAR_DEFAULT_ON is not set
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1294.2.38
retrieving revision 1.1294.2.39
diff -u -p -r1.1294.2.38 -r1.1294.2.39
--- kernel.spec 3 Jul 2009 18:54:45 -0000 1.1294.2.38
+++ kernel.spec 9 Jul 2009 22:53:00 -0000 1.1294.2.39
@@ -57,9 +57,9 @@ Summary: The Linux kernel
# The next upstream release sublevel (base_sublevel+1)
%define upstream_sublevel %(echo $((%{base_sublevel} + 1)))
# The rc snapshot level
-%define rcrev 1
+%define rcrev 2
# The git snapshot level
-%define gitrev 9
+%define gitrev 2
# Set rpm version accordingly
%define rpmversion 2.6.%{upstream_sublevel}
%endif
@@ -89,6 +89,8 @@ Summary: The Linux kernel
# kernel-firmware
%define with_firmware %{?_with_firmware: 1} %{?!_with_firmware: 0}
# tools/perf
+%define with_perftool %{?_without_perftool: 0} %{?!_without_perftool: 1}
+# perf noarch subpkg
%define with_perf %{?_without_perf: 0} %{?!_without_perf: 1}
# kernel-debuginfo
%define with_debuginfo %{?_without_debuginfo: 0} %{?!_without_debuginfo: 1}
@@ -245,6 +247,7 @@ Summary: The Linux kernel
# only package docs noarch
%ifnarch noarch
%define with_doc 0
+%define with_perf 0
%endif
# no need to build headers again for these arches,
@@ -380,7 +383,7 @@ Summary: The Linux kernel
%define with_pae 0
%define with_kdump 0
%define with_debuginfo 0
-%define with_perf 0
+%define with_perftool 0
%define _enable_debug_packages 0
%endif
@@ -487,7 +490,7 @@ BuildRequires: xmlto
%if %{with_sparse}
BuildRequires: sparse >= 0.4.1
%endif
-%if %{with_perf}
+%if %{with_perftool}
BuildRequires: elfutils-libelf-devel zlib-devel
%endif
BuildConflicts: rhbuildsys(DiskFree) < 500Mb
@@ -610,8 +613,6 @@ Patch150: linux-2.6.29-sparc-IOC_TYPECHE
Patch160: linux-2.6-execshield.patch
-Patch200: linux-2.6-ext4-prealloc-fixes.patch
-
Patch250: linux-2.6-debug-sizeof-structs.patch
Patch260: linux-2.6-debug-nmi-timeout.patch
Patch270: linux-2.6-debug-taint-vm.patch
@@ -645,16 +646,14 @@ Patch800: linux-2.6-crash-driver.patch
Patch900: linux-2.6-pci-cacheline-sizing.patch
-Patch1000: linux-2.6-neigh_-fix-state-transition-INCOMPLETE-_FAILED-via-Netlink-request.patch
-
-Patch1515: linux-2.6.29-lirc.patch
+Patch1515: linux-2.6.31-lirc.patch
+Patch1516: lirc_streamzap-buffer-rework.patch
# nouveau + drm fixes
Patch1811: drm-next.patch
Patch1812: drm-modesetting-radeon.patch
Patch1813: drm-radeon-pm.patch
Patch1814: drm-nouveau.patch
-Patch1816: drm-no-gem-on-i8xx.patch
Patch1818: drm-i915-resume-force-mode.patch
Patch1819: drm-intel-big-hammer.patch
@@ -675,10 +674,9 @@ Patch2901: linux-2.6-v4l-dvb-experimenta
Patch2903: linux-2.6-revert-dvb-net-kabi-change.patch
# fs fixes
-Patch3000: linux-2.6-btrfs-experimental-branch.patch
-#snmp fixes
-Patch10000: linux-2.6-missing-rfc2465-stats.patch
+# NFSv4
+Patch3050: linux-2.6-nfsd4-proots.patch
# VIA Nano / VX8xx updates
Patch11010: via-hwmon-temp-sensor.patch
@@ -751,6 +749,13 @@ Group: Development/Debug
This package is required by %{name}-debuginfo subpackages.
It provides the kernel source files common to all builds.
+%package -n perf
+Summary: Performance monitoring for the Linux kernel
+Group: Development/System
+License: GPLv2
+%description -n perf
+This package provides the supporting documentation for the perf tool
+shipped in each kernel image subpackage.
#
# This macro creates a kernel-<subpackage>-debuginfo package.
@@ -1097,8 +1102,6 @@ ApplyPatch sched-introduce-SCHED_RESET_O
# enable sysrq-c on all kernels, not only kexec
#ApplyPatch linux-2.6-sysrq-c.patch
-#ApplyPatch linux-2.6-missing-rfc2465-stats.patch
-
# Architecture patches
# x86(-64)
ApplyPatch via-hwmon-temp-sensor.patch
@@ -1133,12 +1136,13 @@ ApplyPatch linux-2.6-execshield.patch
#
# ext4
-#ApplyPatch linux-2.6-ext4-prealloc-fixes.patch
# xfs
# btrfs
-#ApplyPatch linux-2.6-btrfs-experimental-branch.patch
+
+# NFSv4
+ApplyPatch linux-2.6-nfsd4-proots.patch
# USB
@@ -1148,10 +1152,10 @@ ApplyPatch linux-2.6-acpi-video-dos.patc
# Various low-impact patches to aid debugging.
ApplyPatch linux-2.6-debug-sizeof-structs.patch
-#ApplyPatch linux-2.6-debug-nmi-timeout.patch
-#ApplyPatch linux-2.6-debug-taint-vm.patch
+ApplyPatch linux-2.6-debug-nmi-timeout.patch
+ApplyPatch linux-2.6-debug-taint-vm.patch
ApplyPatch linux-2.6-debug-spinlock-taint.patch
-#ApplyPatch linux-2.6-debug-vm-would-have-oomkilled.patch
+ApplyPatch linux-2.6-debug-vm-would-have-oomkilled.patch
ApplyPatch linux-2.6-debug-always-inline-kzalloc.patch
#
@@ -1214,11 +1218,10 @@ ApplyPatch linux-2.6-crash-driver.patch
# Determine cacheline sizes in a generic manner.
ApplyPatch linux-2.6-pci-cacheline-sizing.patch
-# neigh: fix state transition INCOMPLETE->FAILED via Netlink request
-#ApplyPatch linux-2.6-neigh_-fix-state-transition-INCOMPLETE-_FAILED-via-Netlink-request.patch
-
# http://www.lirc.org/
-#ApplyPatch linux-2.6.29-lirc.patch
+ApplyPatch linux-2.6.31-lirc.patch
+# should be a short-lived patch, hopefully fixing bz#508952 w/o breaking anything else...
+ApplyPatch lirc_streamzap-buffer-rework.patch
ApplyPatch linux-2.6-e1000-ich9.patch
@@ -1228,7 +1231,6 @@ ApplyPatch linux-2.6-e1000-ich9.patch
ApplyPatch drm-nouveau.patch
# pm broken on my thinkpad t60p - airlied
#ApplyPatch drm-radeon-pm.patch
-ApplyPatch drm-no-gem-on-i8xx.patch
ApplyPatch drm-i915-resume-force-mode.patch
ApplyPatch drm-intel-big-hammer.patch
@@ -1357,7 +1359,7 @@ BuildKernel() {
make -s ARCH=$Arch V=1 %{?_smp_mflags} $MakeTarget %{?sparse_mflags}
make -s ARCH=$Arch V=1 %{?_smp_mflags} modules %{?sparse_mflags} || exit 1
-%if %{with_perf}
+%if %{with_perftool}
pushd tools/perf
# make sure the scripts are executable... won't be in tarball until 2.6.31 :/
chmod +x util/generate-cmdlist.sh util/PERF-VERSION-GEN
@@ -1568,6 +1570,7 @@ chmod -R a=rX Documentation
find Documentation -type d | xargs chmod u+w
%endif
+
###
### Special hacks for debuginfo subpackages.
###
@@ -1612,6 +1615,17 @@ xargs -0 --no-run-if-empty %{__install}
ls $man9dir | grep -q '' || > $man9dir/BROKEN
%endif
+%if %{with_perf}
+# perf docs and shell wrapper.
+mkdir -p $RPM_BUILD_ROOT/usr/sbin
+cat <<EOF >>$RPM_BUILD_ROOT/usr/sbin/perf
+#!/bin/bash
+exec /usr/libexec/perf-`uname -r`
+EOF
+chmod 755 $RPM_BUILD_ROOT/usr/sbin/perf
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/doc/perf
+%endif
+
%if %{with_headers}
# Install kernel headers
make ARCH=%{hdrarch} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr headers_install
@@ -1775,6 +1789,13 @@ fi
%{_datadir}/man/man9/*
%endif
+%if %{with_perf}
+%files -n perf
+%defattr(-,root,root)
+%{_datadir}/doc/perf
+/usr/sbin/perf
+%endif
+
# This is %{image_install_path} on an arch where that includes ELF files,
# or empty otherwise.
%define elf_image_install_path %{?kernel_image_elf:%{image_install_path}}
@@ -1790,7 +1811,7 @@ fi
%defattr(-,root,root)\
/%{image_install_path}/%{?-k:%{-k*}}%{!?-k:vmlinuz}-%{KVERREL}%{?2:.%{2}}\
/boot/System.map-%{KVERREL}%{?2:.%{2}}\
-%if %{with_perf}\
+%if %{with_perftool}\
/usr/libexec/perf-%{KVERREL}%{?2:.%{2}}\
%endif\
#/boot/symvers-%{KVERREL}%{?2:.%{2}}.gz\
@@ -1847,6 +1868,55 @@ fi
# and build.
%changelog
+* Thu Jul 09 2009 Michael Young <m.a.young at durham.ac.uk>
+- update pvops and see if CONFIG_KERNEL_LZMA=y is compatible with xen
+
+* Wed Jul 08 2009 Dave Jones <davej at redhat.com>
+- Enable a bunch of debugging options that were missed somehow.
+
+* Wed Jul 08 2009 Kyle McMartin <kyle at redhat.com>
+- Bump NR_CPUS on x86_64 to 512.
+
+* Wed Jul 08 2009 Adam Jackson <ajax at redhat.com>
+- drm-no-gem-on-i8xx.patch: Drop, intel 2D driver requires GEM now. This
+ should be entertaining.
+
+* Wed Jul 08 2009 Kyle McMartin <kyle at redhat.com>
+- First cut of /usr/sbin/perf wrapper script and 'perf'
+ subpackage.
+
+* Wed Jul 08 2009 Kyle McMartin <kyle at redhat.com> 2.6.31-0.54.rc2.git2
+- Rebase and re-apply all the Fedora-specific linux-2.6-debug-*
+ patches.
+- Cull a bunch of upstreamed patches from the spec.
+
+* Wed Jul 08 2009 Steve Dickson <steved at redhat.com>
+- Added NFSD v4 dynamic pseudo root patch which allows
+ NFS v3 exports to be mounted by v4 clients.
+
+* Tue Jul 07 2009 Jarod Wilson <jarod at redhat.com>
+- See if we can't make lirc_streamzap behave better... (#508952)
+
+* Tue Jul 07 2009 Chuck Ebbert <cebbert at redhat.com> 2.6.31-0.47.rc2.git2
+- 2.6.31-rc2-git2
+
+* Tue Jul 07 2009 Jarod Wilson <jarod at redhat.com>
+- Make lirc_i2c actually work with 2.6.31 i2c
+
+* Mon Jul 06 2009 Chuck Ebbert <cebbert at redhat.com>
+- Use LZMA for kernel compression on X86.
+
+* Mon Jul 06 2009 Jarod Wilson <jarod at redhat.com>
+- Hack up lirc_i2c and lirc_zilog to compile with 2.6.31 i2c
+ changes. The drivers might not actually be functional now, but
+ at least they compile again. Will fix later, if need be...
+
+* Sat Jul 04 2009 Dave Jones <davej at redhat.com> 2.6.31-0.42.rc2
+- 2.6.31-rc2
+
+* Sat Jul 04 2009 Chuck Ebbert <cebbert at redhat.com>
+- 2.6.31-rc1-git11
+
* Fri Jul 03 2009 Hans de Goede <hdegoede at redhat.com>
- Disable v4l1 ov511 and quickcam_messenger drivers (obsoleted by
v4l2 gspca subdrivers)
linux-2.6-debug-always-inline-kzalloc.patch:
Index: linux-2.6-debug-always-inline-kzalloc.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-debug-always-inline-kzalloc.patch,v
retrieving revision 1.1
retrieving revision 1.1.16.1
diff -u -p -r1.1 -r1.1.16.1
--- linux-2.6-debug-always-inline-kzalloc.patch 1 Sep 2008 17:39:18 -0000 1.1
+++ linux-2.6-debug-always-inline-kzalloc.patch 9 Jul 2009 22:53:00 -0000 1.1.16.1
@@ -1,6 +1,17 @@
---- linux-2.6.26.noarch/include/linux/slab.h~ 2008-09-01 00:33:55.000000000 -0400
-+++ linux-2.6.26.noarch/include/linux/slab.h 2008-09-01 00:34:19.000000000 -0400
-@@ -272,7 +272,7 @@ static inline void *kmem_cache_zalloc(st
+From 76ec0e2e6d6edf81abc0331d5e7873ef7b2f6019 Mon Sep 17 00:00:00 2001
+From: Kyle McMartin <kyle at phobos.i.jkkm.org>
+Date: Wed, 8 Jul 2009 13:06:01 -0400
+Subject: [PATCH 6/6] fedora: linux-2.6-debug-always-inline-kzalloc.patch
+
+---
+ include/linux/slab.h | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/include/linux/slab.h b/include/linux/slab.h
+index 2da8372..d4ef74f 100644
+--- a/include/linux/slab.h
++++ b/include/linux/slab.h
+@@ -310,7 +310,7 @@ static inline void *kmem_cache_zalloc(struct kmem_cache *k, gfp_t flags)
* @size: how many bytes of memory are required.
* @flags: the type of memory to allocate (see kmalloc).
*/
@@ -9,3 +20,6 @@
{
return kmalloc(size, flags | __GFP_ZERO);
}
+--
+1.6.2.5
+
linux-2.6-debug-nmi-timeout.patch:
Index: linux-2.6-debug-nmi-timeout.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-debug-nmi-timeout.patch,v
retrieving revision 1.4
retrieving revision 1.4.16.1
diff -u -p -r1.4 -r1.4.16.1
--- linux-2.6-debug-nmi-timeout.patch 15 Jul 2008 13:51:23 -0000 1.4
+++ linux-2.6-debug-nmi-timeout.patch 9 Jul 2009 22:53:01 -0000 1.4.16.1
@@ -1,6 +1,18 @@
---- linux-2.6.26.noarch/arch/x86/kernel/nmi.c~ 2008-07-14 20:31:14.000000000 -0400
-+++ linux-2.6.26.noarch/arch/x86/kernel/nmi.c 2008-07-14 20:31:38.000000000 -0400
-@@ -416,7 +416,7 @@ nmi_watchdog_tick(struct pt_regs *regs,
+From 899dd25ae272c73407c1477ec223982d0b57a668 Mon Sep 17 00:00:00 2001
+From: Kyle McMartin <kyle at phobos.i.jkkm.org>
+Date: Wed, 8 Jul 2009 13:03:06 -0400
+Subject: [PATCH 2/6] fedora: linux-2.6-debug-nmi-timeout.patch
+
+---
+ arch/x86/kernel/apic/nmi.c | 2 +-
+ lib/Kconfig.debug | 8 ++++++++
+ 2 files changed, 9 insertions(+), 1 deletions(-)
+
+diff --git a/arch/x86/kernel/apic/nmi.c b/arch/x86/kernel/apic/nmi.c
+index b3025b4..e82a450 100644
+--- a/arch/x86/kernel/apic/nmi.c
++++ b/arch/x86/kernel/apic/nmi.c
+@@ -436,7 +436,7 @@ nmi_watchdog_tick(struct pt_regs *regs, unsigned reason)
* wait a few IRQs (5 seconds) before doing the oops ...
*/
local_inc(&__get_cpu_var(alert_counter));
@@ -9,9 +21,11 @@
/*
* die_nmi will return ONLY if NOTIFY_STOP happens..
*/
---- linux-2.6.21.noarch/lib/Kconfig.debug~ 2007-07-06 17:05:46.000000000 -0400
-+++ linux-2.6.21.noarch/lib/Kconfig.debug 2007-07-06 17:06:07.000000000 -0400
-@@ -126,6 +126,14 @@ config SCHEDSTATS
+diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
+index 12327b2..2790b4f 100644
+--- a/lib/Kconfig.debug
++++ b/lib/Kconfig.debug
+@@ -245,6 +245,14 @@ config SCHEDSTATS
application, you can say N to avoid the very slight overhead
this adds.
@@ -26,3 +40,6 @@
config TIMER_STATS
bool "Collect kernel timers statistics"
depends on DEBUG_KERNEL && PROC_FS
+--
+1.6.2.5
+
linux-2.6-debug-sizeof-structs.patch:
Index: linux-2.6-debug-sizeof-structs.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-debug-sizeof-structs.patch,v
retrieving revision 1.6
retrieving revision 1.6.16.1
diff -u -p -r1.6 -r1.6.16.1
--- linux-2.6-debug-sizeof-structs.patch 12 Feb 2008 06:18:04 -0000 1.6
+++ linux-2.6-debug-sizeof-structs.patch 9 Jul 2009 22:53:01 -0000 1.6.16.1
@@ -1,6 +1,17 @@
---- linux-2.6/init/main.c~ 2006-07-11 02:35:10.000000000 -0400
-+++ linux-2.6/init/main.c 2006-07-11 02:49:01.000000000 -0400
-@@ -350,6 +350,10 @@ static void __init setup_per_cpu_areas(v
+From 3def38bec43d38391d0c9e910dee10317b2ef250 Mon Sep 17 00:00:00 2001
+From: Kyle McMartin <kyle at phobos.i.jkkm.org>
+Date: Wed, 8 Jul 2009 13:01:42 -0400
+Subject: [PATCH 1/6] fedora: linux-2.6-debug-sizeof-structs.patch
+
+---
+ init/main.c | 13 +++++++++++++
+ 1 files changed, 13 insertions(+), 0 deletions(-)
+
+diff --git a/init/main.c b/init/main.c
+index 2c5ade7..1c25f08 100644
+--- a/init/main.c
++++ b/init/main.c
+@@ -397,6 +397,10 @@ static void __init setup_per_cpu_areas(void)
}
#endif /* CONFIG_HAVE_SETUP_PER_CPU_AREA */
@@ -11,9 +22,7 @@
/* Called by boot processor to activate the rest. */
static void __init smp_init(void)
{
---- linux-2.6.20.noarch/init/main.c~ 2007-02-14 11:47:41.000000000 -0500
-+++ linux-2.6.20.noarch/init/main.c 2007-02-14 11:48:39.000000000 -0500
-@@ -403,6 +403,15 @@ static void __init smp_init(void)
+@@ -419,6 +423,15 @@ static void __init smp_init(void)
/* Any cleanup work */
printk(KERN_INFO "Brought up %ld CPUs\n", (long)num_online_cpus());
smp_cpus_done(setup_max_cpus);
@@ -29,3 +38,6 @@
}
#endif
+--
+1.6.2.5
+
linux-2.6-debug-spinlock-taint.patch:
Index: linux-2.6-debug-spinlock-taint.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-debug-spinlock-taint.patch,v
retrieving revision 1.10
retrieving revision 1.10.16.1
diff -u -p -r1.10 -r1.10.16.1
--- linux-2.6-debug-spinlock-taint.patch 14 Dec 2007 03:42:44 -0000 1.10
+++ linux-2.6-debug-spinlock-taint.patch 9 Jul 2009 22:53:01 -0000 1.10.16.1
@@ -1,3 +1,12 @@
+From 49b12b731b75e2ee406c5b33b89e1baa3fa6b336 Mon Sep 17 00:00:00 2001
+From: Kyle McMartin <kyle at phobos.i.jkkm.org>
+Date: Wed, 8 Jul 2009 13:05:32 -0400
+Subject: [PATCH 4/6] fedora: linux-2.6-debug-spinlock-taint.patch
+
+---
+ lib/spinlock_debug.c | 20 ++++++++++----------
+ 1 files changed, 10 insertions(+), 10 deletions(-)
+
diff --git a/lib/spinlock_debug.c b/lib/spinlock_debug.c
index 9c4b025..b7a010a 100644
--- a/lib/spinlock_debug.c
@@ -62,4 +71,6 @@ index 9c4b025..b7a010a 100644
dump_stack();
}
}
+--
+1.6.2.5
linux-2.6-debug-taint-vm.patch:
Index: linux-2.6-debug-taint-vm.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-debug-taint-vm.patch,v
retrieving revision 1.23
retrieving revision 1.23.6.1
diff -u -p -r1.23 -r1.23.6.1
--- linux-2.6-debug-taint-vm.patch 15 Jan 2009 07:38:39 -0000 1.23
+++ linux-2.6-debug-taint-vm.patch 9 Jul 2009 22:53:01 -0000 1.23.6.1
@@ -1,31 +1,42 @@
+From b04c57d9dc889462951312be2ac81ff6c702e954 Mon Sep 17 00:00:00 2001
+From: Kyle McMartin <kyle at phobos.i.jkkm.org>
+Date: Wed, 8 Jul 2009 13:05:09 -0400
+Subject: [PATCH 3/6] fedora: linux-2.6-debug-taint-vm.patch
+
+---
+ kernel/panic.c | 4 +++-
+ mm/page_alloc.c | 5 +++--
+ mm/slab.c | 8 ++++----
+ mm/slub.c | 2 +-
+ 4 files changed, 11 insertions(+), 8 deletions(-)
+
diff --git a/kernel/panic.c b/kernel/panic.c
-index 2a2ff36..361d852 100644
+index 984b3ec..6d1c3be 100644
--- a/kernel/panic.c
+++ b/kernel/panic.c
-@@ -194,6 +194,7 @@ const char *print_tainted(void)
- snprintf(buf, sizeof(buf), "Not tainted");
- return(buf);
+@@ -199,6 +199,7 @@ const char *print_tainted(void)
+
+ return buf;
}
+EXPORT_SYMBOL(print_tainted);
int test_taint(unsigned flag)
{
-@@ -334,8 +335,8 @@ void warn_slowpath(const char *file, int line, const char *fmt, ...)
- sprint_symbol(function, caller);
+@@ -350,7 +351,8 @@ static void warn_slowpath_common(const char *file, int line, void *caller, struc
+ const char *board;
printk(KERN_WARNING "------------[ cut here ]------------\n");
-- printk(KERN_WARNING "WARNING: at %s:%d %s()\n", file,
-- line, function);
-+ printk(KERN_WARNING "WARNING: at %s:%d %s() (%s)\n", file,
-+ line, function, print_tainted());
+- printk(KERN_WARNING "WARNING: at %s:%d %pS()\n", file, line, caller);
++ printk(KERN_WARNING "WARNING: at %s:%d %pS() (%s)\n",
++ file, line, caller, print_tainted());
board = dmi_get_system_info(DMI_PRODUCT_NAME);
if (board)
printk(KERN_WARNING "Hardware name: %s\n", board);
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 5675b30..ae3e7ff 100644
+index e0f2cdf..21dcbc4 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -250,9 +250,10 @@ static void bad_page(struct page *page)
+@@ -257,9 +257,10 @@ static void bad_page(struct page *page)
printk(KERN_ALERT "BUG: Bad page state in process %s pfn:%05lx\n",
current->comm, page_to_pfn(page));
printk(KERN_ALERT
@@ -39,10 +50,10 @@ index 5675b30..ae3e7ff 100644
dump_stack();
out:
diff --git a/mm/slab.c b/mm/slab.c
-index ddc41f3..bf54397 100644
+index e74a16e..7bc287e 100644
--- a/mm/slab.c
+++ b/mm/slab.c
-@@ -1858,8 +1858,8 @@ static void check_poison_obj(struct kmem_cache *cachep, void *objp)
+@@ -1803,8 +1803,8 @@ static void check_poison_obj(struct kmem_cache *cachep, void *objp)
/* Print header */
if (lines == 0) {
printk(KERN_ERR
@@ -53,7 +64,7 @@ index ddc41f3..bf54397 100644
print_objinfo(cachep, objp, 0);
}
/* Hexdump the affected line */
-@@ -2930,8 +2930,8 @@ static void check_slabp(struct kmem_cache *cachep, struct slab *slabp)
+@@ -2902,8 +2902,8 @@ static void check_slabp(struct kmem_cache *cachep, struct slab *slabp)
if (entries != cachep->num - slabp->inuse) {
bad:
printk(KERN_ERR "slab: Internal list corruption detected in "
@@ -65,10 +76,10 @@ index ddc41f3..bf54397 100644
i < sizeof(*slabp) + cachep->num * sizeof(kmem_bufctl_t);
i++) {
diff --git a/mm/slub.c b/mm/slub.c
-index 6392ae5..4f6acce 100644
+index 819f056..8eff0f4 100644
--- a/mm/slub.c
+++ b/mm/slub.c
-@@ -435,7 +435,7 @@ static void slab_bug(struct kmem_cache *s, char *fmt, ...)
+@@ -433,7 +433,7 @@ static void slab_bug(struct kmem_cache *s, char *fmt, ...)
va_end(args);
printk(KERN_ERR "========================================"
"=====================================\n");
@@ -77,3 +88,6 @@ index 6392ae5..4f6acce 100644
printk(KERN_ERR "----------------------------------------"
"-------------------------------------\n\n");
}
+--
+1.6.2.5
+
linux-2.6-debug-vm-would-have-oomkilled.patch:
Index: linux-2.6-debug-vm-would-have-oomkilled.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-debug-vm-would-have-oomkilled.patch,v
retrieving revision 1.2
retrieving revision 1.2.6.1
diff -u -p -r1.2 -r1.2.6.1
--- linux-2.6-debug-vm-would-have-oomkilled.patch 7 Jan 2009 15:12:40 -0000 1.2
+++ linux-2.6-debug-vm-would-have-oomkilled.patch 9 Jul 2009 22:53:01 -0000 1.2.6.1
@@ -1,8 +1,18 @@
+From a0e012e118c2b0eba399e213a7989fd2b880f8b7 Mon Sep 17 00:00:00 2001
+From: Kyle McMartin <kyle at phobos.i.jkkm.org>
+Date: Wed, 8 Jul 2009 13:05:46 -0400
+Subject: [PATCH 5/6] fedora: linux-2.6-debug-vm-would-have-oomkilled.patch
+
+---
+ kernel/sysctl.c | 9 +++++++++
+ mm/oom_kill.c | 14 ++++++++++++++
+ 2 files changed, 23 insertions(+), 0 deletions(-)
+
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
-index b2a2d68..3b132ee 100644
+index 98e0232..0cfe3ab 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
-@@ -67,6 +67,7 @@ extern int sysctl_overcommit_ratio;
+@@ -73,6 +73,7 @@ extern int sysctl_overcommit_ratio;
extern int sysctl_panic_on_oom;
extern int sysctl_oom_kill_allocating_task;
extern int sysctl_oom_dump_tasks;
@@ -10,7 +20,7 @@ index b2a2d68..3b132ee 100644
extern int max_threads;
extern int core_uses_pid;
extern int suid_dumpable;
-@@ -861,6 +862,14 @@ static struct ctl_table vm_table[] = {
+@@ -1031,6 +1032,14 @@ static struct ctl_table vm_table[] = {
.proc_handler = &proc_dointvec,
},
{
@@ -26,7 +36,7 @@ index b2a2d68..3b132ee 100644
.procname = "overcommit_ratio",
.data = &sysctl_overcommit_ratio,
diff --git a/mm/oom_kill.c b/mm/oom_kill.c
-index f255eda..3335a94 100644
+index 175a67a..4ab4bdb 100644
--- a/mm/oom_kill.c
+++ b/mm/oom_kill.c
@@ -31,6 +31,7 @@
@@ -37,9 +47,9 @@ index f255eda..3335a94 100644
static DEFINE_SPINLOCK(zone_scan_lock);
/* #define DEBUG */
-@@ -321,6 +322,12 @@ static void __oom_kill_task(struct task_struct *p, int verbose)
+@@ -328,6 +329,12 @@ static void __oom_kill_task(struct task_struct *p, int verbose)
+ if (!p->mm)
return;
- }
+ if (sysctl_would_have_oomkilled == 1) {
+ printk(KERN_ERR "Would have killed process %d (%s). But continuing instead.\n",
@@ -50,10 +60,11 @@ index f255eda..3335a94 100644
if (verbose)
printk(KERN_ERR "Killed process %d (%s)\n",
task_pid_nr(p), p->comm);
-@@ -363,6 +370,12 @@ static int oom_kill_task(struct task_struct *p)
- return 1;
- } while_each_thread(g, q);
-
+@@ -355,6 +362,13 @@ static int oom_kill_task(struct task_struct *p)
+ return 1;
+ }
+ task_unlock(p);
++
+ if (sysctl_would_have_oomkilled == 1) {
+ printk(KERN_ERR "Would have killed process %d (%s). But continuing instead.\n",
+ task_pid_nr(p), p->comm);
@@ -63,3 +74,6 @@ index f255eda..3335a94 100644
__oom_kill_task(p, 1);
/*
+--
+1.6.2.5
+
Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/sources,v
retrieving revision 1.976.2.19
retrieving revision 1.976.2.20
diff -u -p -r1.976.2.19 -r1.976.2.20
--- sources 3 Jul 2009 18:54:45 -0000 1.976.2.19
+++ sources 9 Jul 2009 22:53:02 -0000 1.976.2.20
@@ -1,3 +1,3 @@
7a80058a6382e5108cdb5554d1609615 linux-2.6.30.tar.bz2
-33d2d730beb66aa82349df8b6096fd91 patch-2.6.31-rc1.bz2
-e5fd406d8910e1dd1f756400488d5921 patch-2.6.31-rc1-git9.bz2
+a785e5e8d16d646c7a7c876359b3dab3 patch-2.6.31-rc2.bz2
+3ce980fca192d93cdc0d09237aad318d patch-2.6.31-rc2-git2.bz2
Index: upstream
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/upstream,v
retrieving revision 1.888.2.18
retrieving revision 1.888.2.19
diff -u -p -r1.888.2.18 -r1.888.2.19
--- upstream 3 Jul 2009 18:54:46 -0000 1.888.2.18
+++ upstream 9 Jul 2009 22:53:03 -0000 1.888.2.19
@@ -1,3 +1,4 @@
linux-2.6.30.tar.bz2
-patch-2.6.31-rc1.bz2
-patch-2.6.31-rc1-git9.bz2
+patch-2.6.31-rc2.bz2
+patch-2.6.31-rc2-git2.bz2
+
xen.pvops.patch:
Index: xen.pvops.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/Attic/xen.pvops.patch,v
retrieving revision 1.1.2.26
retrieving revision 1.1.2.27
diff -u -p -r1.1.2.26 -r1.1.2.27
--- xen.pvops.patch 30 Jun 2009 18:06:05 -0000 1.1.2.26
+++ xen.pvops.patch 9 Jul 2009 22:53:03 -0000 1.1.2.27
@@ -1,5 +1,5 @@
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
-index d1430ef..c402675 100644
+index 738bdc6..a619154 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1884,6 +1884,10 @@ config PCI_OLPC
@@ -1613,7 +1613,7 @@ index 0000000..b9bb5e8
+
+#endif /* _ASM_X86_PARAVIRT_TYPES_H */
diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h
-index 927958d..7e2efe2 100644
+index 1ff685c..70458d6 100644
--- a/arch/x86/include/asm/pci.h
+++ b/arch/x86/include/asm/pci.h
@@ -21,6 +21,7 @@ struct pci_sysdata {
@@ -2017,7 +2017,7 @@ index 6b8ca3a..d47c54f 100644
set_fixmap_nocache(FIX_APIC_BASE, address);
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
-index 4d0216f..fa8d5a1 100644
+index 8fd1efb..e6e7500 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -63,8 +63,10 @@
@@ -2076,7 +2076,7 @@ index 4d0216f..fa8d5a1 100644
if (sis_apic_bug)
writel(reg, &io_apic->index);
-@@ -3857,6 +3878,11 @@ void __init probe_nr_irqs_gsi(void)
+@@ -3852,6 +3873,11 @@ void __init probe_nr_irqs_gsi(void)
printk(KERN_DEBUG "nr_irqs_gsi: %d\n", nr_irqs_gsi);
}
@@ -2088,7 +2088,7 @@ index 4d0216f..fa8d5a1 100644
#ifdef CONFIG_SPARSE_IRQ
int __init arch_probe_nr_irqs(void)
{
-@@ -4150,6 +4176,11 @@ void __init ioapic_init_mappings(void)
+@@ -4145,6 +4171,11 @@ void __init ioapic_init_mappings(void)
struct resource *ioapic_res;
int i;
@@ -2469,7 +2469,7 @@ index 70ec9b9..cef3d70 100644
.start_context_switch = paravirt_nop,
diff --git a/arch/x86/kernel/pci-dma.c b/arch/x86/kernel/pci-dma.c
-index 4763047..e72610a 100644
+index 1a041bc..ee5162e 100644
--- a/arch/x86/kernel/pci-dma.c
+++ b/arch/x86/kernel/pci-dma.c
@@ -10,6 +10,7 @@
@@ -3172,7 +3172,7 @@ index 0000000..496f07d
+#endif
+}
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-index 0a1700a..9b98567 100644
+index 0a1700a..78970be 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -64,6 +64,11 @@ DEFINE_PER_CPU(struct vcpu_info, xen_vcpu_info);
@@ -3187,7 +3187,7 @@ index 0a1700a..9b98567 100644
struct start_info *xen_start_info;
EXPORT_SYMBOL_GPL(xen_start_info);
-@@ -166,9 +171,11 @@ static void __init xen_banner(void)
+@@ -166,13 +171,16 @@ static void __init xen_banner(void)
printk(KERN_INFO "Booting paravirtualized kernel on %s\n",
pv_info.name);
@@ -3201,15 +3201,41 @@ index 0a1700a..9b98567 100644
}
static __read_mostly unsigned int cpuid_leaf1_edx_mask = ~0;
-@@ -207,6 +214,7 @@ static __init void xen_init_cpuid_mask(void)
+ static __read_mostly unsigned int cpuid_leaf1_ecx_mask = ~0;
++static __read_mostly unsigned int cpuid_leaf81_edx_mask = ~0;
+
+ static void xen_cpuid(unsigned int *ax, unsigned int *bx,
+ unsigned int *cx, unsigned int *dx)
+@@ -184,9 +192,15 @@ static void xen_cpuid(unsigned int *ax, unsigned int *bx,
+ * Mask out inconvenient features, to try and disable as many
+ * unsupported kernel subsystems as possible.
+ */
+- if (*ax == 1) {
++ switch (*ax) {
++ case 0x1:
+ maskecx = cpuid_leaf1_ecx_mask;
+ maskedx = cpuid_leaf1_edx_mask;
++ break;
++
++ case 0x80000001:
++ maskedx = cpuid_leaf81_edx_mask;
++ break;
+ }
+
+ asm(XEN_EMULATE_PREFIX "cpuid"
+@@ -207,8 +221,11 @@ static __init void xen_init_cpuid_mask(void)
cpuid_leaf1_edx_mask =
~((1 << X86_FEATURE_MCE) | /* disable MCE */
(1 << X86_FEATURE_MCA) | /* disable MCA */
+ (1 << X86_FEATURE_PAT) | /* disable PAT */
(1 << X86_FEATURE_ACC)); /* thermal monitoring */
++ cpuid_leaf81_edx_mask = ~(1 << (X86_FEATURE_GBPAGES % 32));
++
if (!xen_initial_domain())
-@@ -597,6 +605,18 @@ static void xen_set_iopl_mask(unsigned mask)
+ cpuid_leaf1_edx_mask &=
+ ~((1 << X86_FEATURE_APIC) | /* disable local APIC */
+@@ -597,6 +614,18 @@ static void xen_set_iopl_mask(unsigned mask)
HYPERVISOR_physdev_op(PHYSDEVOP_set_iopl, &set_iopl);
}
@@ -3228,7 +3254,7 @@ index 0a1700a..9b98567 100644
static void xen_io_delay(void)
{
}
-@@ -906,6 +926,7 @@ static const struct pv_cpu_ops xen_cpu_ops __initdata = {
+@@ -906,6 +935,7 @@ static const struct pv_cpu_ops xen_cpu_ops __initdata = {
.load_sp0 = xen_load_sp0,
.set_iopl_mask = xen_set_iopl_mask,
@@ -3236,7 +3262,7 @@ index 0a1700a..9b98567 100644
.io_delay = xen_io_delay,
/* Xen takes care of %gs when switching to usermode for us */
-@@ -978,6 +999,8 @@ asmlinkage void __init xen_start_kernel(void)
+@@ -978,6 +1008,8 @@ asmlinkage void __init xen_start_kernel(void)
xen_setup_features();
@@ -3245,7 +3271,7 @@ index 0a1700a..9b98567 100644
/* Install Xen paravirt ops */
pv_info = xen_info;
pv_init_ops = xen_init_ops;
-@@ -1031,6 +1054,8 @@ asmlinkage void __init xen_start_kernel(void)
+@@ -1031,6 +1063,8 @@ asmlinkage void __init xen_start_kernel(void)
if (!xen_initial_domain())
__supported_pte_mask &= ~(_PAGE_PWT | _PAGE_PCD);
@@ -3254,7 +3280,7 @@ index 0a1700a..9b98567 100644
#ifdef CONFIG_X86_64
/* Work out if we support NX */
check_efer();
-@@ -1045,6 +1070,7 @@ asmlinkage void __init xen_start_kernel(void)
+@@ -1045,6 +1079,7 @@ asmlinkage void __init xen_start_kernel(void)
xen_raw_console_write("mapping kernel into physical memory\n");
pgd = xen_setup_kernel_pagetable(pgd, xen_start_info->nr_pages);
@@ -3262,7 +3288,7 @@ index 0a1700a..9b98567 100644
init_mm.pgd = pgd;
-@@ -1054,6 +1080,15 @@ asmlinkage void __init xen_start_kernel(void)
+@@ -1054,6 +1089,15 @@ asmlinkage void __init xen_start_kernel(void)
if (xen_feature(XENFEAT_supervisor_mode_kernel))
pv_info.kernel_rpl = 0;
@@ -3278,7 +3304,7 @@ index 0a1700a..9b98567 100644
/* set the limit of our address space */
xen_reserve_top();
-@@ -1075,6 +1110,16 @@ asmlinkage void __init xen_start_kernel(void)
+@@ -1075,6 +1119,16 @@ asmlinkage void __init xen_start_kernel(void)
add_preferred_console("xenboot", 0, NULL);
add_preferred_console("tty", 0, NULL);
add_preferred_console("hvc", 0, NULL);
@@ -4241,7 +4267,7 @@ index 22494fd..96f7ee0 100644
inlineable */
#define DECL_ASM(ret, name, ...) \
diff --git a/block/blk-core.c b/block/blk-core.c
-index b06cf5c..f84ea44 100644
+index 4b45435..48804b0 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -438,6 +438,7 @@ void blk_put_queue(struct request_queue *q)
@@ -4252,7 +4278,7 @@ index b06cf5c..f84ea44 100644
void blk_cleanup_queue(struct request_queue *q)
{
-@@ -619,6 +620,7 @@ int blk_get_queue(struct request_queue *q)
+@@ -617,6 +618,7 @@ int blk_get_queue(struct request_queue *q)
return 1;
}
@@ -6883,7 +6909,7 @@ index 0000000..650f4b3
+ (void)xenbus_register_backend(&blkback);
+}
diff --git a/drivers/xen/events.c b/drivers/xen/events.c
-index 891d2e9..a18162c 100644
+index abad71b..ad7193f 100644
--- a/drivers/xen/events.c
+++ b/drivers/xen/events.c
@@ -16,7 +16,7 @@
@@ -7276,9 +7302,9 @@ index 891d2e9..a18162c 100644
void __init xen_init_IRQ(void)
{
int i;
- size_t size = nr_cpu_ids * sizeof(struct cpu_evtchn_s);
- cpu_evtchn_mask_p = alloc_bootmem(size);
+ cpu_evtchn_mask_p = kcalloc(nr_cpu_ids, sizeof(struct cpu_evtchn_s),
+ GFP_KERNEL);
- BUG_ON(cpu_evtchn_mask_p == NULL);
+ irq_info = alloc_bootmem(nr_irqs * sizeof(*irq_info));
+
@@ -11964,7 +11990,7 @@ index e2e5ce5..ca67e2b 100644
{
int ret = test_bit(PG_uptodate, &(page)->flags);
diff --git a/include/linux/pci.h b/include/linux/pci.h
-index d304ddf..4b5fa8d 100644
+index 115fb7b..2265a32 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -1276,5 +1276,11 @@ extern void pci_hp_create_module_link(struct pci_slot *pci_slot);
@@ -12879,7 +12905,7 @@ index bffe6d7..cec5f62 100644
panic("Cannot allocate SWIOTLB overflow buffer!\n");
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 5d714f8..79a704e 100644
+index ad7cd1c..1e1ba56 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -566,6 +566,13 @@ static void __free_pages_ok(struct page *page, unsigned int order)
--- drm-no-gem-on-i8xx.patch DELETED ---
--- linux-2.6-btrfs-experimental-branch.patch DELETED ---
--- linux-2.6-ext4-prealloc-fixes.patch DELETED ---
--- linux-2.6-missing-rfc2465-stats.patch DELETED ---
--- linux-2.6-neigh_-fix-state-transition-INCOMPLETE-_FAILED-via-Netlink-request.patch DELETED ---
--- linux-2.6.29-lirc.patch DELETED ---
--- patch-2.6.31-rc1-git9.bz2.sign DELETED ---
--- patch-2.6.31-rc1.bz2.sign DELETED ---
- Previous message (by thread): rpms/electronics-menu/F-10 electronics-menu-1.0-makefile.patch, NONE, 1.1 electronics-menu-1.0-submenus.patch, NONE, 1.1 .cvsignore, 1.2, 1.3 electronics-menu.spec, 1.2, 1.3 import.log, 1.1, 1.2 sources, 1.2, 1.3
- Next message (by thread): rpms/ardour/devel ardour-SConstruct.patch, NONE, 1.1 .cvsignore, 1.12, 1.13 ardour.spec, 1.26, 1.27 sources, 1.12, 1.13 ardour-2.8-SConstruct.patch, 1.1, NONE ardour-2.8-gcc44.patch, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list