rpms/kernel/devel linux-2.6-defaults-pci_no_msi.patch, NONE, 1.1 linux-2.6-drm-fix-master-perm.patch, NONE, 1.1 linux-2.6-drm-modesetting-oops-fixes.patch, NONE, 1.1 linux-2.6-libata-ata_piix-check-sidpr.patch, NONE, 1.1 linux-2.6-libata-force-hardreset-in-sleep-mode.patch, NONE, 1.1 linux-2.6-md-fix-oops-in-rdev_attr_store.patch, NONE, 1.1 linux-2.6-wireless-pending-too.patch, 1.5, 1.6 linux-2.6.25-sparc64-semctl.patch, NONE, 1.1 patch-2.6.25.1.bz2.sign, NONE, 1.1 .cvsignore, 1.809, 1.810 kernel.spec, 1.623, 1.624 linux-2.6-sata-eeepc-faster.patch, 1.2, 1.3 linux-2.6-wireless-pending.patch, 1.45, 1.46 sources, 1.770, 1.771 upstream, 1.689, 1.690

Jarod Wilson (jwilson) fedora-extras-commits at redhat.com
Sat May 3 03:37:41 UTC 2008


Author: jwilson

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv19458

Modified Files:
	.cvsignore kernel.spec linux-2.6-sata-eeepc-faster.patch 
	linux-2.6-wireless-pending.patch sources upstream 
Added Files:
	linux-2.6-defaults-pci_no_msi.patch 
	linux-2.6-drm-fix-master-perm.patch 
	linux-2.6-drm-modesetting-oops-fixes.patch 
	linux-2.6-libata-ata_piix-check-sidpr.patch 
	linux-2.6-libata-force-hardreset-in-sleep-mode.patch 
	linux-2.6-md-fix-oops-in-rdev_attr_store.patch 
	linux-2.6-wireless-pending-too.patch 
	linux-2.6.25-sparc64-semctl.patch patch-2.6.25.1.bz2.sign 
Log Message:
* Fri May 02 2008 Jarod Wilson <jwilson at redhat.com> 2.6.25.1-1
- Linux 2.6.25.1
- Drop patches merged in 2.6.25.1:
  * linux-2.6-netdev-tehuti-check-register-size.patch
  * linux-2.6-netdev-tehuti-move-ioctl-perm-check-closer-to-function-start.patch
  * linux-2.6-selinux-ssinitialized-bugon.patch
  * bits of wireless patches

Sync'ing forward from f9 and committing here instead of in f9, just in case it does something we don't like. Don't want to repeat f7... Built and booted my laptop okay anyhow... :)


linux-2.6-defaults-pci_no_msi.patch:

--- NEW FILE linux-2.6-defaults-pci_no_msi.patch ---
Disable PCI MSI by default, add kernel parameter to enable it.

Signed-off-by: Chuck Ebbert <cebbert at redhat.com>

--- linux-2.6.20.noarch.orig/drivers/pci/msi.c
+++ linux-2.6.20.noarch/drivers/pci/msi.c
@@ -23,7 +23,7 @@ static DEFINE_SPINLOCK(msi_lock);
 #include "pci.h"
 #include "msi.h"
 
-static int pci_msi_enable = 1;
+static int pci_msi_enable = 0;
 
 /* Arch hooks */
 
@@ -722,6 +722,11 @@ void pci_no_msi(void)
 {
 	pci_msi_enable = 0;
 }
+
+void pci_yes_msi(void)
+{
+	pci_msi_enable = 1;
+}
 
 void pci_msi_init_pci_dev(struct pci_dev *dev)
 {
--- linux-2.6.20.noarch.orig/Documentation/kernel-parameters.txt
+++ linux-2.6.20.noarch/Documentation/kernel-parameters.txt
@@ -1429,6 +1429,9 @@ and is between 256 and 4096 characters. 
 				root domains (aka PCI segments, in ACPI-speak).
 		nommconf	[X86-32,X86_64] Disable use of MMCONFIG for PCI
 				Configuration
+		msi		[MSI] If the PCI_MSI kernel config parameter is
+				enabled, this kernel boot option can be used to
+				enable the use of MSI interrupts system-wide.
 		nomsi		[MSI] If the PCI_MSI kernel config parameter is
 				enabled, this kernel boot option can be used to
 				disable the use of MSI interrupts system-wide.
--- linux-2.6.20.noarch.orig/drivers/pci/pci.c
+++ linux-2.6.20.noarch/drivers/pci/pci.c
@@ -1642,6 +1642,8 @@ static int __devinit pci_setup(char *str
 		if (*str && (str = pcibios_setup(str)) && *str) {
 			if (!strcmp(str, "nomsi")) {
 				pci_no_msi();
+			} else if (!strcmp(str, "msi")) {
+				pci_yes_msi();
 			} else if (!strcmp(str, "noaer")) {
 				pci_no_aer();
 			} else if (!strcmp(str, "nodomains")) {
--- linux-2.6.20.noarch.orig/drivers/pci/pci.h
+++ linux-2.6.20.noarch/drivers/pci/pci.h
@@ -41,9 +41,11 @@ extern unsigned int pci_pm_d3_delay;
 
 #ifdef CONFIG_PCI_MSI
 void pci_no_msi(void);
+void pci_yes_msi(void);
 extern void pci_msi_init_pci_dev(struct pci_dev *dev);
 #else
 static inline void pci_no_msi(void) { }
+static inline void pci_yes_msi(void) { }
 static inline void pci_msi_init_pci_dev(struct pci_dev *dev) { }
 #endif
 

linux-2.6-drm-fix-master-perm.patch:

--- NEW FILE linux-2.6-drm-fix-master-perm.patch ---
diff --git a/drivers/char/drm/drm_ioctl.c b/drivers/char/drm/drm_ioctl.c
index e35126a..3b69b74 100644
--- a/drivers/char/drm/drm_ioctl.c
+++ b/drivers/char/drm/drm_ioctl.c
@@ -308,6 +308,9 @@ int drm_setversion(struct drm_device *dev, void *data, struct drm_file *file_pri
 	struct drm_set_version *sv = data;
 	int if_version, retcode = 0;
 
+	if (!file_priv->is_master)
+		return -EPERM;
+
 	if (sv->drm_di_major != -1) {
 		if (sv->drm_di_major != DRM_IF_MAJOR ||
 		    sv->drm_di_minor < 0 || sv->drm_di_minor > DRM_IF_MINOR) {
diff --git a/drivers/char/drm/i915_dma.c b/drivers/char/drm/i915_dma.c
index 9ca655d..1733c78 100644
--- a/drivers/char/drm/i915_dma.c
+++ b/drivers/char/drm/i915_dma.c
@@ -510,7 +510,7 @@ static int i915_emit_box(struct drm_device *dev,
 void i915_emit_breadcrumb(struct drm_device *dev)
 {
 	struct drm_i915_private *dev_priv = dev->dev_private;
-	struct drm_i915_master_private *master_priv = dev->primary->master->driver_priv;
+	struct drm_i915_master_private *master_priv;
 	RING_LOCALS;
 
 	if (++dev_priv->counter > BREADCRUMB_MASK) {
@@ -518,8 +518,11 @@ void i915_emit_breadcrumb(struct drm_device *dev)
 		DRM_DEBUG("Breadcrumb counter wrapped around\n");
 	}
 
-	if (master_priv->sarea_priv)
-		master_priv->sarea_priv->last_enqueue = dev_priv->counter;
+	if (dev->primary && dev->primary->master) {
+		master_priv = dev->primary->master->driver_priv;
+		if (master_priv->sarea_priv)
+			master_priv->sarea_priv->last_enqueue = dev_priv->counter;
+	}
 
 	BEGIN_LP_RING(4);
 	OUT_RING(CMD_STORE_DWORD_IDX);

linux-2.6-drm-modesetting-oops-fixes.patch:

--- NEW FILE linux-2.6-drm-modesetting-oops-fixes.patch ---
diff --git a/drivers/char/drm/drm_edid.c b/drivers/char/drm/drm_edid.c
index 41aa8f5..338a5f5 100644
--- a/drivers/char/drm/drm_edid.c
+++ b/drivers/char/drm/drm_edid.c
@@ -251,8 +251,10 @@ static int add_standard_modes(struct drm_output *output, struct edid *edid)
 			continue;
 
 		newmode = drm_mode_std(dev, &edid->standard_timings[i]);
-		drm_mode_probed_add(output, newmode);
-		modes++;
+		if (newmode) {
+			drm_mode_probed_add(output, newmode);
+			modes++;
+		}
 	}
 
 	return modes;
@@ -282,12 +284,14 @@ static int add_detailed_info(struct drm_output *output, struct edid *edid)
 		/* Detailed mode timing */
 		if (timing->pixel_clock) {
 			newmode = drm_mode_detailed(dev, timing);
-			/* First detailed mode is preferred */
-			if (i == 0 && edid->preferred_timing)
-				newmode->type |= DRM_MODE_TYPE_PREFERRED;
-			drm_mode_probed_add(output, newmode);
+			if (newmode) {
+				/* First detailed mode is preferred */
+				if (i == 0 && edid->preferred_timing)
+					newmode->type |= DRM_MODE_TYPE_PREFERRED;
+				drm_mode_probed_add(output, newmode);
 				     
-			modes++;
+				modes++;
+			}
 			continue;
 		}
 
@@ -312,8 +316,10 @@ static int add_detailed_info(struct drm_output *output, struct edid *edid)
 
 				std = &data->data.timings[j];
 				newmode = drm_mode_std(dev, std);
-				drm_mode_probed_add(output, newmode);
-				modes++;
+				if (newmode) {
+					drm_mode_probed_add(output, newmode);
+					modes++;
+				}
 			}
 			break;
 		default:
diff --git a/drivers/char/drm/i915_drv.h b/drivers/char/drm/i915_drv.h
index 9e4631a..98a0056 100644
--- a/drivers/char/drm/i915_drv.h
+++ b/drivers/char/drm/i915_drv.h
@@ -770,6 +770,8 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
 #define XY_MONO_SRC_COPY_IMM_BLT	((2<<29)|(0x71<<22)|5)
 #define XY_SRC_COPY_BLT_WRITE_ALPHA	(1<<21)
 #define XY_SRC_COPY_BLT_WRITE_RGB	(1<<20)
+#define XY_SRC_COPY_BLT_SRC_TILED      (1<<15)
+#define XY_SRC_COPY_BLT_DST_TILED      (1<<11)
 #define   BLT_DEPTH_8			(0<<24)
 #define   BLT_DEPTH_16_565		(1<<24)
 #define   BLT_DEPTH_16_1555		(2<<24)
diff --git a/drivers/char/drm/i915_irq.c b/drivers/char/drm/i915_irq.c
index a0c747a..7c7e233 100644
--- a/drivers/char/drm/i915_irq.c
+++ b/drivers/char/drm/i915_irq.c
@@ -122,7 +122,7 @@ static void i915_vblank_tasklet(struct drm_device *dev)
 				XY_SRC_COPY_BLT_WRITE_ALPHA |
 				XY_SRC_COPY_BLT_WRITE_RGB)
 			     : XY_SRC_COPY_BLT_CMD;
-	u32 pitchropcpp;
+	u32 ropcpp, src_pitch, dst_pitch;
 	RING_LOCALS;
 
 	DRM_DEBUG("\n");
@@ -147,12 +147,6 @@ static void i915_vblank_tasklet(struct drm_device *dev)
 		if ((counter[pipe] - vbl_swap->sequence) > (1<<23))
 			continue;
 
-		master_priv = vbl_swap->minor->master->driver_priv;
-		sarea_priv = master_priv->sarea_priv;
-		
-		pitchropcpp = (sarea_priv->pitch * cpp) | (0xcc << 16) |
-			(cpp << 23) | (1 << 24);
-
 		list_del(list);
 		dev_priv->swaps_pending--;
 
@@ -198,16 +192,6 @@ static void i915_vblank_tasklet(struct drm_device *dev)
 
 	i915_kernel_lost_context(dev);
 
-	upper[0] = upper[1] = 0;
-	slice[0] = max(sarea_priv->planeA_h / nhits, 1);
-	slice[1] = max(sarea_priv->planeB_h / nhits, 1);
-	lower[0] = sarea_priv->planeA_y + slice[0];
-	lower[1] = sarea_priv->planeB_y + slice[0];
-
-	offsets[0] = sarea_priv->front_offset;
-	offsets[1] = sarea_priv->back_offset;
-	offsets[2] = sarea_priv->third_offset;
-	num_pages = sarea_priv->third_handle ? 3 : 2;
 
 	spin_lock(&dev->drw_lock);
 
@@ -221,8 +205,6 @@ static void i915_vblank_tasklet(struct drm_device *dev)
 	     upper[1] = lower[1], lower[1] += slice[1]) {
 		int init_drawrect = 1;
 
-		if (i == nhits)
-			lower[0] = lower[1] = sarea_priv->height;
 
 		list_for_each(hit, &hits) {
 			drm_i915_vbl_swap_t *swap_hit =
@@ -236,24 +218,65 @@ static void i915_vblank_tasklet(struct drm_device *dev)
 			if (!drw)
 				continue;
 
-			plane = swap_hit->plane;
-
 			if (swap_hit->flip) {
 				i915_dispatch_vsync_flip(dev, drw, plane);
 				continue;
 			}
 
-			if (init_drawrect) {
-				BEGIN_LP_RING(6);
+			master_priv = swap_hit->minor->master->driver_priv;
+			sarea_priv = master_priv->sarea_priv;
 
-				OUT_RING(GFX_OP_DRAWRECT_INFO);
-				OUT_RING(0);
-				OUT_RING(0);
-				OUT_RING(sarea_priv->width | sarea_priv->height << 16);
-				OUT_RING(sarea_priv->width | sarea_priv->height << 16);
-				OUT_RING(0);
+			src_pitch = sarea_priv->pitch * cpp;
+			dst_pitch = sarea_priv->pitch * cpp;
 
-				ADVANCE_LP_RING();
+			if (sarea_priv->front_tiled) {
+				cmd |= XY_SRC_COPY_BLT_DST_TILED;
+				dst_pitch >>=2;
+			}
+
+			if (sarea_priv->back_tiled) {
+				cmd |= XY_SRC_COPY_BLT_SRC_TILED;
+				src_pitch >>=2;
+			}
+
+			upper[0] = upper[1] = 0;
+			slice[0] = max(sarea_priv->planeA_h / nhits, 1);
+			slice[1] = max(sarea_priv->planeB_h / nhits, 1);
+			lower[0] = sarea_priv->planeA_y + slice[0];
+			lower[1] = sarea_priv->planeB_y + slice[0];
+
+			offsets[0] = sarea_priv->front_offset;
+			offsets[1] = sarea_priv->back_offset;
+			offsets[2] = sarea_priv->third_offset;
+			num_pages = sarea_priv->third_handle ? 3 : 2;
+			if (i == nhits)
+				lower[0] = lower[1] = sarea_priv->height;
+
+			ropcpp = (0xcc << 16) | ((cpp - 1) << 24);
+
+			plane = swap_hit->plane;
+
+			if (init_drawrect) {
+				if (IS_I965G(dev)) {
+					BEGIN_LP_RING(4);
+
+					OUT_RING(GFX_OP_DRAWRECT_INFO_I965);
+					OUT_RING(0);
+					OUT_RING(((sarea_priv->width - 1) & 0xffff) | ((sarea_priv->height - 1) << 16));
+					OUT_RING(0);
+					ADVANCE_LP_RING();
+				} else {
+					BEGIN_LP_RING(6);
+
+					OUT_RING(GFX_OP_DRAWRECT_INFO);
+					OUT_RING(0);
+					OUT_RING(0);
+					OUT_RING(sarea_priv->width | sarea_priv->height << 16);
+					OUT_RING(sarea_priv->width | sarea_priv->height << 16);
+					OUT_RING(0);
+
+					ADVANCE_LP_RING();
+				}
 
 				sarea_priv->ctxOwner = DRM_KERNEL_CONTEXT;
 
@@ -268,6 +291,8 @@ static void i915_vblank_tasklet(struct drm_device *dev)
 				 (2 * plane)) & 0x3;
 			back = (front + 1) % num_pages;
 
+		
+
 			for (num_rects = drw->num_rects; num_rects--; rect++) {
 				int y1 = max(rect->y1, top);
 				int y2 = min(rect->y2, bottom);
@@ -278,12 +303,12 @@ static void i915_vblank_tasklet(struct drm_device *dev)
 				BEGIN_LP_RING(8);
 
 				OUT_RING(cmd);
-				OUT_RING(pitchropcpp);
+				OUT_RING(ropcpp | dst_pitch);
 				OUT_RING((y1 << 16) | rect->x1);
 				OUT_RING((y2 << 16) | rect->x2);
 				OUT_RING(offsets[front]);
 				OUT_RING((y1 << 16) | rect->x1);
-				OUT_RING(pitchropcpp & 0xffff);
+				OUT_RING(src_pitch);
 				OUT_RING(offsets[back]);
 
 				ADVANCE_LP_RING();
@@ -709,6 +734,7 @@ int i915_vblank_swap(struct drm_device *dev, void *data,
 	vbl_swap->plane = plane;
 	vbl_swap->sequence = swap->sequence;
 	vbl_swap->flip = (swap->seqtype & _DRM_VBLANK_FLIP);
+	vbl_swap->minor = file_priv->minor;
 
 	if (vbl_swap->flip)
 		swap->sequence++;
diff --git a/drivers/char/drm/radeon_cp.c b/drivers/char/drm/radeon_cp.c
index dd9bb45..33c6b72 100644
--- a/drivers/char/drm/radeon_cp.c
+++ b/drivers/char/drm/radeon_cp.c
@@ -1278,15 +1278,17 @@ static void radeon_cp_init_ring_buffer(struct drm_device * dev,
 	tmp = RADEON_READ(RADEON_BUS_CNTL) & ~RADEON_BUS_MASTER_DIS;
 	RADEON_WRITE(RADEON_BUS_CNTL, tmp);
 
-	dev_priv->sarea_priv->last_frame = dev_priv->scratch[0] = 0;
-	RADEON_WRITE(RADEON_LAST_FRAME_REG, dev_priv->sarea_priv->last_frame);
+	if (dev_priv->sarea_priv) {
+		dev_priv->sarea_priv->last_frame = dev_priv->scratch[0] = 0;
+		RADEON_WRITE(RADEON_LAST_FRAME_REG, dev_priv->sarea_priv->last_frame);
 
-	dev_priv->sarea_priv->last_dispatch = dev_priv->scratch[1] = 0;
-	RADEON_WRITE(RADEON_LAST_DISPATCH_REG,
-		     dev_priv->sarea_priv->last_dispatch);
+		dev_priv->sarea_priv->last_dispatch = dev_priv->scratch[1] = 0;
+		RADEON_WRITE(RADEON_LAST_DISPATCH_REG,
+			     dev_priv->sarea_priv->last_dispatch);
 
-	dev_priv->sarea_priv->last_clear = dev_priv->scratch[2] = 0;
-	RADEON_WRITE(RADEON_LAST_CLEAR_REG, dev_priv->sarea_priv->last_clear);
+		dev_priv->sarea_priv->last_clear = dev_priv->scratch[2] = 0;
+		RADEON_WRITE(RADEON_LAST_CLEAR_REG, dev_priv->sarea_priv->last_clear);
+	}
 
 	radeon_do_wait_for_idle(dev_priv);
 

linux-2.6-libata-ata_piix-check-sidpr.patch:

--- NEW FILE linux-2.6-libata-ata_piix-check-sidpr.patch ---
On certain configurations (certain macbooks), even though all the
conditions for SIDPR access described in the datasheet are met,
actually reading those registers just returns 0 and have no effect on
write.  Verify SIDPR is actually working before enabling it.

This is reported by Ryan Roth in bz#10512.

Signed-off-by: Tejun Heo <htejun at gmail.com>
Cc: Ryan Roth <ryan.roth at ch2m.com>
---
Apple did another weird thing with ich8m in addition to the weird
lockup on second port enable and SIDPR causes drive misdetection.
This one probably should go to -stable too.

Thanks.

 drivers/ata/ata_piix.c |   25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c
index ea2c764..a9027b8 100644
--- a/drivers/ata/ata_piix.c
+++ b/drivers/ata/ata_piix.c
@@ -1348,6 +1348,8 @@ static void __devinit piix_init_sidpr(struct ata_host *host)
 {
 	struct pci_dev *pdev = to_pci_dev(host->dev);
 	struct piix_host_priv *hpriv = host->private_data;
+	struct ata_device *dev0 = &host->ports[0]->link.device[0];
+	u32 scontrol;
 	int i;
 
 	/* check for availability */
@@ -1366,6 +1368,29 @@ static void __devinit piix_init_sidpr(struct ata_host *host)
 		return;
 
 	hpriv->sidpr = pcim_iomap_table(pdev)[PIIX_SIDPR_BAR];
+
+	/* SCR access via SIDPR doesn't work on some configurations.
+	 * Give it a test drive by inhibiting power save modes which
+	 * we'll do anyway.
+	 */
+	scontrol = piix_sidpr_read(dev0, SCR_CONTROL);
+
+	/* if IPM is already 3, SCR access is probably working.  Don't
+	 * un-inhibit power save modes as BIOS might have inhibited
+	 * them for a reason.
+	 */
+	if ((scontrol & 0xf00) != 0x300) {
+		scontrol |= 0x300;
+		piix_sidpr_write(dev0, SCR_CONTROL, scontrol);
+		scontrol = piix_sidpr_read(dev0, SCR_CONTROL);
+
+		if ((scontrol & 0xf00) != 0x300) {
+			dev_printk(KERN_INFO, host->dev, "SCR access via "
+				   "SIDPR is available but doesn't work\n");
+			return;
+		}
+	}
+
 	host->ports[0]->ops = &piix_sidpr_sata_ops;
 	host->ports[1]->ops = &piix_sidpr_sata_ops;
 }
_

linux-2.6-libata-force-hardreset-in-sleep-mode.patch:

--- NEW FILE linux-2.6-libata-force-hardreset-in-sleep-mode.patch ---
Currently, libata doesn't support link powersave modes and always
disables link PS modes.  However, if the link is already in powersave
mode when libata begis probing, inhibiting powersave modes by setting
IPM isn't enough.  Link should be manually transited into active mode
using SPM or hardreset.

As SPM isn't avalable on all controllers and we're gonna prefer
hardreset in future anyway, force hardreset if link is in powersave
mode.

Reported-by: Paul Collins <paul at burly.ondioline.org>
Signed-off-by: Tejun Heo <htejun at gmail.com>
---
Jeff, this isn't necessary for #upstream.

drivers/ata/libata-core.c |   15 +++++++++++++++
1 file changed, 15 insertions(+)

index be95fdb..e3ddefd 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -3966,11 +3966,26 @@ int ata_std_prereset(struct ata_link *link, unsigned long deadline)
 
 	/* if SATA, resume link */
 	if (ap->flags & ATA_FLAG_SATA) {
+		u32 sstatus;
+
 		rc = sata_link_resume(link, timing, deadline);
 		/* whine about phy resume failure but proceed */
 		if (rc && rc != -EOPNOTSUPP)
 			ata_link_printk(link, KERN_WARNING, "failed to resume "
 					"link for reset (errno=%d)\n", rc);
+
+		/* force hardreset if the link is sleeping */
+		if (sata_scr_read(link, SCR_STATUS, &sstatus) == 0) {
+			u8 ipm = sstatus >> 8;
+
+			if (ipm == 2 || ipm == 6) {
+				ata_link_printk(link, KERN_INFO,
+						"link in %s mode, forcing hardreset\n",
+						ipm == 2 ? "partial" : "slumber");
+				ehc->i.action |= ATA_EH_HARDRESET;
+				return 0;
+			}
+		}
 	}
 
 	/* Wait for !BSY if the controller can wait for the first D2H


linux-2.6-md-fix-oops-in-rdev_attr_store.patch:

--- NEW FILE linux-2.6-md-fix-oops-in-rdev_attr_store.patch ---
md: fix use after free when removing rdev via sysfs

From: Dan Williams <dan.j.williams at intel.com>

rdev->mddev is no longer valid upon return from entry->store() when the
'remove' command is given.

Signed-off-by: Dan Williams <dan.j.williams at intel.com>
Signed-off-by: Neil Brown <neilb at suse.de>

### Diffstat output
 ./drivers/md/md.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff .prev/drivers/md/md.c ./drivers/md/md.c
--- .prev/drivers/md/md.c	2008-04-28 14:58:30.000000000 +1000
+++ ./drivers/md/md.c	2008-04-28 14:58:30.000000000 +1000
@@ -2096,7 +2096,7 @@ rdev_attr_store(struct kobject *kobj, st
 			rv = -EBUSY;
 		else
 			rv = entry->store(rdev, page, length);
-		mddev_unlock(rdev->mddev);
+		mddev_unlock(mddev);
 	}
 	return rv;
 }

linux-2.6-wireless-pending-too.patch:

Index: linux-2.6-wireless-pending-too.patch
===================================================================
RCS file: linux-2.6-wireless-pending-too.patch
diff -N linux-2.6-wireless-pending-too.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ linux-2.6-wireless-pending-too.patch	3 May 2008 03:36:55 -0000	1.6
@@ -0,0 +1,406 @@
+commit 099714934d80100624829f1e2961b9dccaef3280
+Author: Roland Dreier <rdreier at cisco.com>
+Date:   Wed Apr 23 16:22:13 2008 -0700
+
+    iwlwifi: Don't unlock priv->mutex if it isn't locked
+    
+    Commit b716bb91 ("iwlwifi: Cancel scanning upon association") moved the
+    test of priv->vif in iwl{3945,4964}_mac_config_interface() outside of
+    where priv->mutex is held, but still tries to do mutex_unlock() on
+    return.  This is clearly wrong and triggers a nasty lockdep warning when
+    this codepath is triggered.  Fix this by removing the mutex_unlock().
+    
+    Signed-off-by: Roland Dreier <rolandd at cisco.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 4d381ffb02701c3fc976091473aead7c03523133
+Author: Roel Kluin <12o3l at tiscali.nl>
+Date:   Wed Apr 23 22:10:29 2008 +0200
+
+    wireless: rndis_wlan: modparam_workaround_interval is never below 0.
+    
+    priv->param_workaround_interval is unsigned, modparam_workaround_interval not.
+    the former is never < 0.
+    
+    Signed-off-by: Roel Kluin <12o3l at tiscali.nl>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 8ba82e969f71d088f718f93d64985d5fcdd9c171
+Author: Roel Kluin <12o3l at tiscali.nl>
+Date:   Wed Apr 23 21:56:49 2008 +0200
+
+    prism54: prism54_get_encode() test below 0 on unsigned index
+    
+    previously in this function:
+    
+    u32 index = (dwrq->flags & IW_ENCODE_INDEX) - 1;
+    
+    index is unsigned, so if -1, the original test (below) didn't work.
+    
+    Signed-off-by: Roel Kluin <12o3l at tiscali.nl>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit d619ee08490ca78c9571dca133cd0d0527a60839
+Author: Luis Carlos Cobo <luisca at cozybit.com>
+Date:   Wed Apr 23 12:34:59 2008 -0700
+
+    mac80211: update mesh EID values
+    
+    This patch updates mesh EID values, some of which where conflicting with
+    already-approved 11h EIDs (pointed out by Tomas Winkler). I wanted to use the
+    values suggested in the last available 802.11 draft (2.0) but it assigns 50 to
+    MESH_CONFIG, the same value than EXT_SUPP_RATES. Using the values proposed in
+    the draft incremented by one.
+    
+    Signed-off-by: Luis Carlos Cobo <luisca at cozybit.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 0da926f05748d273e7b2b673b0de21629ae9acdd
+Author: Ron Rindjunsky <ron.rindjunsky at intel.com>
+Date:   Wed Apr 23 13:45:12 2008 +0300
+
+    mac80211: fix use before check of Qdisc length
+    
+    This patch fixes use of Qdisc length in requeue function, before we checked
+    the reference is valid. (Adrian Bunk's catch)
+    
+    Signed-off-by: Ron Rindjunsky <ron.rindjunsky at intel.com>
+    Signed-off-by: Adrian Bunk <bunk at kernel.org>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 13d8fd2d15fdd492078bedb9fde87c901a4e4df0
+Author: Adrian Bunk <bunk at kernel.org>
+Date:   Wed Apr 23 12:51:28 2008 +0300
+
+    net/mac80211/rx.c: fix off-by-one
+    
+    This patch fixes an off-by-one in net/mac80211/rx.c introduced by
+    commit 8318d78a44d49ac1edf2bdec7299de3617c4232e
+    (cfg80211 API for channels/bitrates, mac80211 and driver conversion)
+    and spotted by the Coverity checker.
+    
+    Signed-off-by: Adrian Bunk <bunk at kernel.org>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 1ebebea8e844d01c80b93b8ee4d696ee7c0cbc27
+Author: Pavel Emelyanov <xemul at openvz.org>
+Date:   Wed Apr 23 11:47:15 2008 +0400
+
+    mac80211: Fix race between ieee80211_rx_bss_put and lookup routines.
+    
+    The put routine first decrements the users counter and then
+    (if it is zero) locks the sta_bss_lock and removes one from
+    the list and the hash.
+    
+    Thus, any of ieee80211_sta_config_auth, ieee80211_rx_bss_get
+    or ieee80211_rx_mesh_bss_get can race with it by finding a
+    bss that is about to get kfree-ed.
+    
+    Using atomic_dec_and_lock in ieee80211_rx_bss_put takes care
+    of this race.
+    
+    Signed-off-by: Pavel Emelyanov <xemul at openvz.org>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 4503183aa32e6886400d82282292934fa64a81b0
+Author: Larry Finger <Larry.Finger at lwfinger.net>
+Date:   Sat Apr 19 17:52:12 2008 +0200
+
+    ssb: Fix all-ones boardflags
+    
+    In the SSB SPROM a field set to all ones means the value
+    is not defined in the SPROM.
+    In case of the boardflags, we need to set them to zero
+    to avoid confusing drivers. Drivers will only check the
+    flags by ANDing.
+    
+    Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
+    Signed-off-by: Gabor Stefanik <netrolller.3d at gmail.com>
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 9fc38458355525f801cd2ab403ac89850489a05e
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Sat Apr 19 16:53:00 2008 +0200
+
+    b43: Add more btcoexist workarounds
+    
+    This adds more workarounds for devices with broken BT bits.
+    
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit a259d6a45b915e00e8c6085e35fea7b61e3008a8
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Fri Apr 18 21:06:37 2008 +0200
+
+    b43: Fix HostFlags data types
+    
+    The HostFlags are a bitmask of 48bit. So we must use an u64 datatype
+    to hold all bits.
+    
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 1855ba7812dbd294fcfc083dc7d3b14d3b1f38db
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Fri Apr 18 20:51:41 2008 +0200
+
+    b43: Workaround invalid bluetooth settings
+    
+    This adds a workaround for invalid bluetooth SPROM settings
+    on ASUS PCI cards.
+    This will stop the microcode from poking with the BT GPIO line.
+    This fixes data transmission on this device, as the BT GPIO line
+    is used for something TX related on this device
+    (probably the power amplifier or the radio).
+    This also adds a modparam knob to help debugging this in the future,
+    as more devices with this bug may show up.
+    
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 0f48d7e1cf2341148dcafc19a098ca22e184bee9
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Thu Apr 17 19:36:28 2008 +0200
+
+    mac80211: MAINTAINERS update
+    
+    This updates the mac80211 maintainers entry to
+     1) remove Jiri
+     2) put me first
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Cc: Michael Wu <flamingice at sourmilk.net>
+    Cc: Jiri Benc <jbenc at suse.cz>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit a46f025d053e47b9ce602f53f6d30e94d304a51c
+Author: Abhijeet Kolekar <abhijeet.kolekar at intel.com>
+Date:   Wed Apr 16 14:02:04 2008 -0700
+
+    mac80211: Fix n-band association problem
+    
+    There are two structures named wmm_info and wmm_param, they are used while
+    parsing the beacon frame. (Check the function ieee802_11_parse_elems).
+    Certain APs like D-link does not set the fifth bit in WMM IE.
+    While sending the association request to n-only ap it checks for wmm_ie.
+    If it is set then only ieee80211_ht_cap is sent during association request.
+    So n-only association fails.
+    And this patch fixes this problem by copying the wmm_info to wmm_ie,
+    which enables the "wmm" flag in iee80211_send_assoc.
+    
+    Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar at intel.com>
+    Acked-by: Ron Rindjunsky <ron.rindjunsky at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+diff -Naurp linux-2.6.25.noarch/drivers/net/wireless/b43/main.c linux-2.6.25.noarch.wifi/drivers/net/wireless/b43/main.c
+--- linux-2.6.25.noarch/drivers/net/wireless/b43/main.c	2008-05-02 19:06:11.000000000 -0400
++++ linux-2.6.25.noarch.wifi/drivers/net/wireless/b43/main.c	2008-05-02 19:10:50.000000000 -0400
+@@ -3601,7 +3601,7 @@ static void setup_struct_wldev_for_init(
+ static void b43_bluetooth_coext_enable(struct b43_wldev *dev)
+ {
+ 	struct ssb_sprom *sprom = &dev->dev->bus->sprom;
+-	u32 hf;
++	u64 hf;
+ 
+ 	if (!modparam_btcoex)
+ 		return;
+@@ -3715,7 +3715,8 @@ static int b43_wireless_core_init(struct
+ 	struct ssb_sprom *sprom = &bus->sprom;
+ 	struct b43_phy *phy = &dev->phy;
+ 	int err;
+-	u32 hf, tmp;
++	u64 hf;
++	u32 tmp;
+ 
+ 	B43_WARN_ON(b43_status(dev) != B43_STAT_UNINIT);
+ 
+diff -Naurp linux-2.6.25.noarch/drivers/net/wireless/b43/phy.c linux-2.6.25.noarch.wifi/drivers/net/wireless/b43/phy.c
+--- linux-2.6.25.noarch/drivers/net/wireless/b43/phy.c	2008-04-16 22:49:44.000000000 -0400
++++ linux-2.6.25.noarch.wifi/drivers/net/wireless/b43/phy.c	2008-05-02 19:06:35.000000000 -0400
+@@ -2043,7 +2043,7 @@ int b43_phy_init(struct b43_wldev *dev)
+ void b43_set_rx_antenna(struct b43_wldev *dev, int antenna)
+ {
+ 	struct b43_phy *phy = &dev->phy;
+-	u32 hf;
++	u64 hf;
+ 	u16 tmp;
+ 	int autodiv = 0;
+ 
+diff -Naurp linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c linux-2.6.25.noarch.wifi/drivers/net/wireless/iwlwifi/iwl3945-base.c
+--- linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c	2008-05-02 19:06:11.000000000 -0400
++++ linux-2.6.25.noarch.wifi/drivers/net/wireless/iwlwifi/iwl3945-base.c	2008-05-02 19:06:35.000000000 -0400
+@@ -6903,7 +6903,6 @@ static int iwl3945_mac_config_interface(
+ 
+ 	if (priv->vif != vif) {
+ 		IWL_DEBUG_MAC80211("leave - priv->vif != vif\n");
+-		mutex_unlock(&priv->mutex);
+ 		return 0;
+ 	}
+ 
+diff -Naurp linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c linux-2.6.25.noarch.wifi/drivers/net/wireless/iwlwifi/iwl4965-base.c
+--- linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c	2008-05-02 19:06:11.000000000 -0400
++++ linux-2.6.25.noarch.wifi/drivers/net/wireless/iwlwifi/iwl4965-base.c	2008-05-02 19:06:35.000000000 -0400
+@@ -6809,7 +6809,6 @@ static int iwl4965_mac_config_interface(
+ 
+ 	if (priv->vif != vif) {
+ 		IWL_DEBUG_MAC80211("leave - priv->vif != vif\n");
+-		mutex_unlock(&priv->mutex);
+ 		return 0;
+ 	}
+ 
+diff -Naurp linux-2.6.25.noarch/drivers/net/wireless/prism54/isl_ioctl.c linux-2.6.25.noarch.wifi/drivers/net/wireless/prism54/isl_ioctl.c
+--- linux-2.6.25.noarch/drivers/net/wireless/prism54/isl_ioctl.c	2008-05-02 19:06:11.000000000 -0400
++++ linux-2.6.25.noarch.wifi/drivers/net/wireless/prism54/isl_ioctl.c	2008-05-02 19:06:35.000000000 -0400
+@@ -1186,7 +1186,7 @@ prism54_get_encode(struct net_device *nd
+ 	rvalue |= mgt_get_request(priv, DOT11_OID_DEFKEYID, 0, NULL, &r);
+ 	devindex = r.u;
+ 	/* Now get the key, return it */
+-	if ((index < 0) || (index > 3))
++	if (index == -1 || index > 3)
+ 		/* no index provided, use the current one */
+ 		index = devindex;
+ 	rvalue |= mgt_get_request(priv, DOT11_OID_DEFKEYX, index, NULL, &r);
+diff -Naurp linux-2.6.25.noarch/drivers/net/wireless/rndis_wlan.c linux-2.6.25.noarch.wifi/drivers/net/wireless/rndis_wlan.c
+--- linux-2.6.25.noarch/drivers/net/wireless/rndis_wlan.c	2008-05-02 19:06:11.000000000 -0400
++++ linux-2.6.25.noarch.wifi/drivers/net/wireless/rndis_wlan.c	2008-05-02 19:06:35.000000000 -0400
+@@ -2402,7 +2402,6 @@ static int bcm4320_early_init(struct usb
+ 	priv->param_power_output = modparam_power_output;
+ 	priv->param_roamtrigger  = modparam_roamtrigger;
+ 	priv->param_roamdelta    = modparam_roamdelta;
+-	priv->param_workaround_interval = modparam_workaround_interval;
+ 
+ 	priv->param_country[0] = toupper(priv->param_country[0]);
+ 	priv->param_country[1] = toupper(priv->param_country[1]);
+@@ -2425,8 +2424,10 @@ static int bcm4320_early_init(struct usb
+ 	else if (priv->param_roamdelta > 2)
+ 		priv->param_roamdelta = 2;
+ 
+-	if (priv->param_workaround_interval < 0)
++	if (modparam_workaround_interval < 0)
+ 		priv->param_workaround_interval = 500;
++	else
++		priv->param_workaround_interval = modparam_workaround_interval;
+ 
+ 	rndis_set_config_parameter_str(dev, "Country", priv->param_country);
+ 	rndis_set_config_parameter_str(dev, "FrameBursting",
+diff -Naurp linux-2.6.25.noarch/include/linux/ieee80211.h linux-2.6.25.noarch.wifi/include/linux/ieee80211.h
+--- linux-2.6.25.noarch/include/linux/ieee80211.h	2008-05-02 19:06:11.000000000 -0400
++++ linux-2.6.25.noarch.wifi/include/linux/ieee80211.h	2008-05-02 19:06:35.000000000 -0400
+@@ -465,13 +465,19 @@ enum ieee80211_eid {
+ 	WLAN_EID_TS_DELAY = 43,
+ 	WLAN_EID_TCLAS_PROCESSING = 44,
+ 	WLAN_EID_QOS_CAPA = 46,
+-	/* 802.11s */
+-	WLAN_EID_MESH_CONFIG = 36,      /* Pending IEEE 802.11 ANA approval */
+-	WLAN_EID_MESH_ID = 37,          /* Pending IEEE 802.11 ANA approval */
+-	WLAN_EID_PEER_LINK = 40,	/* Pending IEEE 802.11 ANA approval */
+-	WLAN_EID_PREQ = 53,		/* Pending IEEE 802.11 ANA approval */
+-	WLAN_EID_PREP = 54,		/* Pending IEEE 802.11 ANA approval */
+-	WLAN_EID_PERR = 55,		/* Pending IEEE 802.11 ANA approval */
++	/* 802.11s
++	 *
++	 * All mesh EID numbers are pending IEEE 802.11 ANA approval.
++	 * The numbers have been incremented from those suggested in
++	 * 802.11s/D2.0 so that MESH_CONFIG does not conflict with
++	 * EXT_SUPP_RATES.
++	 */
++	WLAN_EID_MESH_CONFIG = 51,
++	WLAN_EID_MESH_ID = 52,
++	WLAN_EID_PEER_LINK = 55,
++	WLAN_EID_PREQ = 68,
++	WLAN_EID_PREP = 69,
++	WLAN_EID_PERR = 70,
+ 	/* 802.11h */
+ 	WLAN_EID_PWR_CONSTRAINT = 32,
+ 	WLAN_EID_PWR_CAPABILITY = 33,
+diff -Naurp linux-2.6.25.noarch/MAINTAINERS linux-2.6.25.noarch.wifi/MAINTAINERS
+--- linux-2.6.25.noarch/MAINTAINERS	2008-05-02 19:06:11.000000000 -0400
++++ linux-2.6.25.noarch.wifi/MAINTAINERS	2008-05-02 19:06:35.000000000 -0400
+@@ -2541,12 +2541,10 @@ W:	http://www.tazenda.demon.co.uk/phil/l
+ S:	Maintained
+ 
+ MAC80211
+-P:	Michael Wu
+-M:	flamingice at sourmilk.net
+ P:	Johannes Berg
+ M:	johannes at sipsolutions.net
+-P:	Jiri Benc
+-M:	jbenc at suse.cz
++P:	Michael Wu
++M:	flamingice at sourmilk.net
+ L:	linux-wireless at vger.kernel.org
+ W:	http://linuxwireless.org/
+ T:	git kernel.org:/pub/scm/linux/kernel/git/linville/wireless-2.6.git
+diff -Naurp linux-2.6.25.noarch/net/mac80211/ieee80211_sta.c linux-2.6.25.noarch.wifi/net/mac80211/ieee80211_sta.c
+--- linux-2.6.25.noarch/net/mac80211/ieee80211_sta.c	2008-05-02 19:06:11.000000000 -0400
++++ linux-2.6.25.noarch.wifi/net/mac80211/ieee80211_sta.c	2008-05-02 19:06:35.000000000 -0400
+@@ -2240,10 +2240,13 @@ static void ieee80211_rx_bss_put(struct 
+ 				 struct ieee80211_sta_bss *bss)
+ {
+ 	struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
+-	if (!atomic_dec_and_test(&bss->users))
++
++	local_bh_disable();
++	if (!atomic_dec_and_lock(&bss->users, &local->sta_bss_lock)) {
++		local_bh_enable();
+ 		return;
++	}
+ 
+-	spin_lock_bh(&local->sta_bss_lock);
+ 	__ieee80211_rx_bss_hash_del(dev, bss);
+ 	list_del(&bss->list);
+ 	spin_unlock_bh(&local->sta_bss_lock);
+@@ -2660,7 +2663,26 @@ static void ieee80211_rx_bss_info(struct
+ 			bss->wmm_ie_len = elems.wmm_param_len + 2;
+ 		} else
+ 			bss->wmm_ie_len = 0;
+-	} else if (!elems.wmm_param && bss->wmm_ie) {
++	} else if (elems.wmm_info &&
++		    (!bss->wmm_ie || bss->wmm_ie_len != elems.wmm_info_len ||
++		     memcmp(bss->wmm_ie, elems.wmm_info, elems.wmm_info_len))) {
++		 /* As for certain AP's Fifth bit is not set in WMM IE in
++		  * beacon frames.So while parsing the beacon frame the
++		  * wmm_info structure is used instead of wmm_param.
++		  * wmm_info structure was never used to set bss->wmm_ie.
++		  * This code fixes this problem by copying the WME
++		  * information from wmm_info to bss->wmm_ie and enabling
++		  * n-band association.
++		  */
++		kfree(bss->wmm_ie);
++		bss->wmm_ie = kmalloc(elems.wmm_info_len + 2, GFP_ATOMIC);
++		if (bss->wmm_ie) {
++			memcpy(bss->wmm_ie, elems.wmm_info - 2,
++			       elems.wmm_info_len + 2);
++			bss->wmm_ie_len = elems.wmm_info_len + 2;
++		} else
++			bss->wmm_ie_len = 0;
++	} else if (!elems.wmm_param && !elems.wmm_info && bss->wmm_ie) {
+ 		kfree(bss->wmm_ie);
+ 		bss->wmm_ie = NULL;
+ 		bss->wmm_ie_len = 0;
+diff -Naurp linux-2.6.25.noarch/net/mac80211/rx.c linux-2.6.25.noarch.wifi/net/mac80211/rx.c
+--- linux-2.6.25.noarch/net/mac80211/rx.c	2008-05-02 19:06:11.000000000 -0400
++++ linux-2.6.25.noarch.wifi/net/mac80211/rx.c	2008-05-02 19:06:35.000000000 -0400
+@@ -2170,7 +2170,7 @@ void __ieee80211_rx(struct ieee80211_hw 
+ 	struct ieee80211_supported_band *sband;
+ 
+ 	if (status->band < 0 ||
+-	    status->band > IEEE80211_NUM_BANDS) {
++	    status->band >= IEEE80211_NUM_BANDS) {
+ 		WARN_ON(1);
+ 		return;
+ 	}
+diff -Naurp linux-2.6.25.noarch/net/mac80211/wme.c linux-2.6.25.noarch.wifi/net/mac80211/wme.c
+--- linux-2.6.25.noarch/net/mac80211/wme.c	2008-05-02 19:06:11.000000000 -0400
++++ linux-2.6.25.noarch.wifi/net/mac80211/wme.c	2008-05-02 19:06:35.000000000 -0400
+@@ -709,7 +709,7 @@ void ieee80211_requeue(struct ieee80211_
+ 	struct ieee80211_sched_data *q = qdisc_priv(root_qd);
+ 	struct Qdisc *qdisc = q->queues[queue];
+ 	struct sk_buff *skb = NULL;
+-	u32 len = qdisc->q.qlen;
++	u32 len;
+ 
+ 	if (!qdisc || !qdisc->dequeue)
+ 		return;

linux-2.6.25-sparc64-semctl.patch:

--- NEW FILE linux-2.6.25-sparc64-semctl.patch ---
diff --git a/arch/sparc64/kernel/sys_sparc.c b/arch/sparc64/kernel/sys_sparc.c
index 73ed01b..8d4761f 100644
--- a/arch/sparc64/kernel/sys_sparc.c
+++ b/arch/sparc64/kernel/sys_sparc.c
@@ -454,8 +454,8 @@ asmlinkage long sys_ipc(unsigned int call, int first, unsigned long second,
 			err = sys_semget(first, (int)second, (int)third);
 			goto out;
 		case SEMCTL: {
-			err = sys_semctl(first, third,
-					 (int)second | IPC_64,
+			err = sys_semctl(first, second,
+					 (int)third | IPC_64,
 					 (union semun) ptr);
 			goto out;
 		}


--- NEW FILE patch-2.6.25.1.bz2.sign ---
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: See http://www.kernel.org/signature.html for info

iD8DBQBIGjw5yGugalF9Dw4RAphkAJ0YcpGy3uo0sEFEjOjlfeiwf6+glACfQHNo
kpbYfdcOwRVZPXTGcutDP0U=
=ocT2
-----END PGP SIGNATURE-----


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/.cvsignore,v
retrieving revision 1.809
retrieving revision 1.810
diff -u -r1.809 -r1.810
--- .cvsignore	17 Apr 2008 04:38:59 -0000	1.809
+++ .cvsignore	3 May 2008 03:36:55 -0000	1.810
@@ -4,3 +4,4 @@
 temp-*
 kernel-2.6.25
 linux-2.6.25.tar.bz2
+patch-2.6.25.1.bz2


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.623
retrieving revision 1.624
diff -u -r1.623 -r1.624
--- kernel.spec	23 Apr 2008 01:00:01 -0000	1.623
+++ kernel.spec	3 May 2008 03:36:55 -0000	1.624
@@ -20,7 +20,7 @@
 # kernel spec when the kernel is rebased, so fedora_build automatically
 # works out to the offset from the rebase, so it doesn't get too ginormous.
 #
-%define fedora_cvs_origin 619
+%define fedora_cvs_origin 623
 %define fedora_build %(R="$Revision$"; R="${R%% \$}"; R="${R##: 1.}"; expr $R - %{fedora_cvs_origin})
 
 # base_sublevel is the kernel version we're starting with and patching
@@ -31,7 +31,7 @@
 ## If this is a released kernel ##
 %if 0%{?released_kernel}
 # Do we have a 2.6.21.y update to apply?
-%define stable_update 0
+%define stable_update 1
 # Set rpm version accordingly
 %if 0%{?stable_update}
 %define stablerev .%{stable_update}
@@ -586,6 +586,8 @@
 Patch148: linux-2.6-powerpc-zImage-32MiB.patch
 Patch149: linux-2.6-efika-not-chrp.patch
 
+Patch150: linux-2.6.25-sparc64-semctl.patch
+
 Patch160: linux-2.6-execshield.patch
 Patch250: linux-2.6-debug-sizeof-structs.patch
 Patch260: linux-2.6-debug-nmi-timeout.patch
@@ -595,6 +597,7 @@
 Patch340: linux-2.6-debug-vm-would-have-oomkilled.patch
 Patch350: linux-2.6-devmem.patch
 Patch370: linux-2.6-crash-driver.patch
+Patch380: linux-2.6-defaults-pci_no_msi.patch
 Patch400: linux-2.6-scsi-cpqarray-set-master.patch
 Patch402: linux-2.6-scsi-mpt-vmware-fix.patch
 Patch410: linux-2.6-alsa-kill-annoying-messages.patch
@@ -607,14 +610,22 @@
 Patch580: linux-2.6-sparc-selinux-mprotect-checks.patch
 Patch610: linux-2.6-defaults-fat-utf8.patch
 Patch670: linux-2.6-ata-quirk.patch
+Patch671: linux-2.6-libata-force-hardreset-in-sleep-mode.patch
+Patch672: linux-2.6-libata-ata_piix-check-sidpr.patch
 
 Patch680: linux-2.6-wireless.patch
 Patch681: linux-2.6-wireless-pending.patch
-Patch682: linux-2.6-rt2x00-configure_filter.patch
+Patch682: linux-2.6-wireless-pending-too.patch
+Patch683: linux-2.6-rt2x00-configure_filter.patch
 Patch690: linux-2.6-at76.patch
 
 Patch700: linux-2.6-nfs-client-mounts-hang.patch
 
+Patch750: linux-2.6-md-fix-oops-in-rdev_attr_store.patch
+
+# SELinux patches, will go upstream in .26
+#
+
 Patch1101: linux-2.6-default-mmf_dump_elf_headers.patch
 Patch1400: linux-2.6-smarter-relatime.patch
 Patch1515: linux-2.6-lirc.patch
@@ -626,6 +637,8 @@
 Patch1806: linux-2.6-drm-i915-modeset.patch
 Patch1807: linux-2.6-drm-radeon-fix-oops.patch
 Patch1808: linux-2.6-drm-radeon-fix-oops2.patch
+Patch1809: linux-2.6-drm-modesetting-oops-fixes.patch
+Patch1810: linux-2.6-drm-fix-master-perm.patch
 
 # kludge to make ich9 e1000 work
 Patch2000: linux-2.6-e1000-ich9.patch
@@ -1013,7 +1026,7 @@
 #
 # PowerPC
 #
-###  UPSTREAM PATCHES FROM 2.6.25 (we think):
+###  UPSTREAM PATCHES FROM 2.6.26 (we think):
 # RTC class driver for ppc_md rtc functions
 ApplyPatch linux-2.6-ppc-rtc.patch
 ### NOT (YET) UPSTREAM:
@@ -1042,6 +1055,11 @@
 ApplyPatch linux-2.6-efika-not-chrp.patch
 
 #
+# SPARC64
+#
+ApplyPatch linux-2.6.25-sparc64-semctl.patch
+
+#
 # Exec shield
 #
 ApplyPatch linux-2.6-execshield.patch
@@ -1078,6 +1096,12 @@
 ApplyPatch linux-2.6-crash-driver.patch
 
 #
+# PCI
+#
+# disable message signaled interrupts
+ApplyPatch linux-2.6-defaults-pci_no_msi.patch
+
+#
 # SCSI Bits.
 #
 # fix cpqarray pci enable
@@ -1117,11 +1141,16 @@
 
 # ia64 ata quirk
 ApplyPatch linux-2.6-ata-quirk.patch
+# wake up links that have been put to sleep by BIOS (#436099)
+ApplyPatch linux-2.6-libata-force-hardreset-in-sleep-mode.patch
+# fix broken drive detection on some macbooks (#439398)
+ApplyPatch linux-2.6-libata-ata_piix-check-sidpr.patch
 
 # wireless patches headed for 2.6.25
 #ApplyPatch linux-2.6-wireless.patch
 # wireless patches headed for 2.6.26
 ApplyPatch linux-2.6-wireless-pending.patch
+ApplyPatch linux-2.6-wireless-pending-too.patch
 # rt2x00 configure_filter fix to avoid endless loop on insert for USB devices
 ApplyPatch linux-2.6-rt2x00-configure_filter.patch
 
@@ -1134,6 +1163,9 @@
 # NFS Client mounts hang when exported directory do not exist
 ApplyPatch linux-2.6-nfs-client-mounts-hang.patch
 
+# fix oops in mdraid (#441765)
+ApplyPatch linux-2.6-md-fix-oops-in-rdev_attr_store.patch
+
 # build id related enhancements
 ApplyPatch linux-2.6-default-mmf_dump_elf_headers.patch
 
@@ -1153,6 +1185,8 @@
 ApplyPatch linux-2.6-drm-i915-modeset.patch
 ApplyPatch linux-2.6-drm-radeon-fix-oops.patch
 ApplyPatch linux-2.6-drm-radeon-fix-oops2.patch
+ApplyPatch linux-2.6-drm-modesetting-oops-fixes.patch
+ApplyPatch linux-2.6-drm-fix-master-perm.patch
 
 # ext4dev stable patch queue, slated for 2.6.25
 #ApplyPatch linux-2.6-ext4-stable-queue.patch
@@ -1765,9 +1799,58 @@
 %kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL}.xen -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.xen.conf %{with_xen} xen
 
 %changelog
-* Tue Apr 22 2008 Chuck Ebbert <cebbert at redhat.com>
+* Fri May 02 2008 Jarod Wilson <jwilson at redhat.com> 2.6.25.1-1
+- Linux 2.6.25.1
+- Drop patches merged in 2.6.25.1:
+  * linux-2.6-netdev-tehuti-check-register-size.patch
+  * linux-2.6-netdev-tehuti-move-ioctl-perm-check-closer-to-function-start.patch
+  * linux-2.6-selinux-ssinitialized-bugon.patch
+  * bits of wireless patches
+
+* Thu May 01 2008 Dave Airlie <airlied at redhat.com> 2.6.25-14
+- fix radeon fast-user-switch oops + i915 breadcrumb oops
+
+* Wed Apr 30 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.25-13
+- Fix drive detection on some Macbook models (#439398)
+- Fix oops in RAID code (#441765)
+
+* Tue Apr 29 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.25-12
+- Fix CVE-2008-1675; patches taken from 2.6.25.1-rc1.
+
+* Fri Apr 25 2008 Tom "spot" Callaway <tcallawa at redhat.com> 2.6.25-11
+- add sparc64 semctl fix (David Miller)
+  (it will be in git shortly, and can be dropped on the next git merge)
+
+* Thu Apr 24 2008 John W. Linville <linville at redhat.com> 2.6.25-10
+- mac80211: Fix n-band association problem
+- net/mac80211/rx.c: fix off-by-one
+- mac80211: MAINTAINERS update
+- ssb: Fix all-ones boardflags
+- mac80211: update mesh EID values
+- b43: Workaround invalid bluetooth settings
+- b43: Fix HostFlags data types
+- b43: Add more btcoexist workarounds
+- mac80211: Fix race between ieee80211_rx_bss_put and lookup routines.
+- prism54: prism54_get_encode() test below 0 on unsigned index
+- wireless: rndis_wlan: modparam_workaround_interval is never below 0.
+- iwlwifi: Don't unlock priv->mutex if it isn't locked
+- mac80211: fix use before check of Qdisc length
+
+* Wed Apr 23 2008 Dave Airlie <airlied at redhat.com> 2.6.25-8
+- drm fixup oops in modesetting code and stable fixes for i915 code from upstream
+
+* Tue Apr 22 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.25-7
 - Enable machine check exception handling on x86_64.
 
+* Tue Apr 22 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.25-6
+- Force hard reset on sleeping SATA links during probe (#436099)
+
+* Tue Apr 22 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.25-5
+- Disable PCI MSI interrupts by default again.
+
+* Mon Apr 21 2008 Eric Paris <eparis at redhat.com>
+- Don't BUG_ON() in selinux_clone_mnt_opts inside the installer because its init is wonky
+
 * Fri Apr 18 2008 Kyle McMartin <kmcmartin at redhat.com>
 - Enable CONFIG_RT_GROUP_SCHED (#442959)
 

linux-2.6-sata-eeepc-faster.patch:

Index: linux-2.6-sata-eeepc-faster.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-sata-eeepc-faster.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-sata-eeepc-faster.patch	2 May 2008 15:37:53 -0000	1.2
+++ linux-2.6-sata-eeepc-faster.patch	3 May 2008 03:36:55 -0000	1.3
@@ -14,9 +14,7 @@
 
 With the patch below it returns..
 
-/dev/sda:
- Timing buffered disk reads:   76 MB in  3.04 seconds =  25.04 MB/sec
-
+TBD
 
 Signed-off-by: Dave Jones <davej at redhat.com>
 

linux-2.6-wireless-pending.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.45 -r 1.46 linux-2.6-wireless-pending.patch
Index: linux-2.6-wireless-pending.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-wireless-pending.patch,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -r1.45 -r1.46
--- linux-2.6-wireless-pending.patch	15 Apr 2008 15:29:52 -0000	1.45
+++ linux-2.6-wireless-pending.patch	3 May 2008 03:36:55 -0000	1.46
@@ -5467,35778 +5467,16636 @@
     Signed-off-by: Tomas Winkler <tomas.winkler at intel.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-diff -up linux-2.6.24.noarch/include/linux/nl80211.h.orig linux-2.6.24.noarch/include/linux/nl80211.h
---- linux-2.6.24.noarch/include/linux/nl80211.h.orig	2008-04-08 00:15:25.000000000 -0400
-+++ linux-2.6.24.noarch/include/linux/nl80211.h	2008-04-08 00:15:32.000000000 -0400
-@@ -78,6 +78,18 @@
-  *	or, if no MAC address given, all stations, on the interface identified
-  *	by %NL80211_ATTR_IFINDEX.
-  *
-+ * @NL80211_CMD_GET_MPATH: Get mesh path attributes for mesh path to
-+ * 	destination %NL80211_ATTR_MAC on the interface identified by
-+ * 	%NL80211_ATTR_IFINDEX.
-+ * @NL80211_CMD_SET_MPATH:  Set mesh path attributes for mesh path to
-+ * 	destination %NL80211_ATTR_MAC on the interface identified by
-+ * 	%NL80211_ATTR_IFINDEX.
-+ * @NL80211_CMD_NEW_PATH: Add a mesh path with given attributes to the
-+ *	the interface identified by %NL80211_ATTR_IFINDEX.
-+ * @NL80211_CMD_DEL_PATH: Remove a mesh path identified by %NL80211_ATTR_MAC
-+ *	or, if no MAC address given, all mesh paths, on the interface identified
-+ *	by %NL80211_ATTR_IFINDEX.
-+ *
-  * @NL80211_CMD_MAX: highest used command number
-  * @__NL80211_CMD_AFTER_LAST: internal use
-  */
-@@ -112,6 +124,11 @@ enum nl80211_commands {
- 
- 	/* add commands here */
- 
-+	NL80211_CMD_GET_MPATH,
-+	NL80211_CMD_SET_MPATH,
-+	NL80211_CMD_NEW_MPATH,
-+	NL80211_CMD_DEL_MPATH,
+diff -Naurp linux-2.6.25.noarch/Documentation/DocBook/mac80211.tmpl linux-2.6.25.noarch.wifi/Documentation/DocBook/mac80211.tmpl
+--- linux-2.6.25.noarch/Documentation/DocBook/mac80211.tmpl	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.25.noarch.wifi/Documentation/DocBook/mac80211.tmpl	2008-05-02 18:52:02.000000000 -0400
+@@ -0,0 +1,335 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
++	"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>
 +
- 	/* used to define NL80211_CMD_MAX below */
- 	__NL80211_CMD_AFTER_LAST,
- 	NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1
-@@ -157,9 +174,23 @@ enum nl80211_commands {
-  *	restriction (at most %NL80211_MAX_SUPP_RATES).
-  * @NL80211_ATTR_STA_VLAN: interface index of VLAN interface to move station
-  *	to, or the AP interface the station was originally added to to.
-- * @NL80211_ATTR_STA_STATS: statistics for a station, part of station info
-+ * @NL80211_ATTR_STA_INFO: information about a station, part of station info
-  *	given for %NL80211_CMD_GET_STATION, nested attribute containing
-- *	info as possible, see &enum nl80211_sta_stats.
-+ *	info as possible, see &enum nl80211_sta_info.
-+ *
-+ * @NL80211_ATTR_WIPHY_BANDS: Information about an operating bands,
-+ *	consisting of a nested array.
-+ *
-+ * @NL80211_ATTR_MESH_ID: mesh id (1-32 bytes).
-+ * @NL80211_ATTR_PLINK_ACTION: action to perform on the mesh peer link.
-+ * @NL80211_ATTR_MPATH_NEXT_HOP: MAC address of the next hop for a mesh path.
-+ * @NL80211_ATTR_MPATH_INFO: information about a mesh_path, part of mesh path
-+ * 	info given for %NL80211_CMD_GET_MPATH, nested attribute described at
-+ *	&enum nl80211_mpath_info.
-+ *
-+ *
-+ * @NL80211_ATTR_MNTR_FLAGS: flags, nested element with NLA_FLAG attributes of
-+ *      &enum nl80211_mntr_flags.
-  *
-  * @NL80211_ATTR_MAX: highest attribute number currently defined
-  * @__NL80211_ATTR_AFTER_LAST: internal use
-@@ -193,10 +224,19 @@ enum nl80211_attrs {
- 	NL80211_ATTR_STA_LISTEN_INTERVAL,
- 	NL80211_ATTR_STA_SUPPORTED_RATES,
- 	NL80211_ATTR_STA_VLAN,
--	NL80211_ATTR_STA_STATS,
-+	NL80211_ATTR_STA_INFO,
++<book id="mac80211-developers-guide">
++  <bookinfo>
++    <title>The mac80211 subsystem for kernel developers</title>
 +
-+	NL80211_ATTR_WIPHY_BANDS,
++    <authorgroup>
++      <author>
++        <firstname>Johannes</firstname>
++        <surname>Berg</surname>
++        <affiliation>
++          <address><email>johannes at sipsolutions.net</email></address>
++        </affiliation>
++      </author>
++    </authorgroup>
 +
-+	NL80211_ATTR_MNTR_FLAGS,
- 
- 	/* add attributes here, update the policy in nl80211.c */
- 
-+	NL80211_ATTR_MESH_ID,
-+	NL80211_ATTR_STA_PLINK_ACTION,
-+	NL80211_ATTR_MPATH_NEXT_HOP,
-+	NL80211_ATTR_MPATH_INFO,
++    <copyright>
++      <year>2007</year>
++      <year>2008</year>
++      <holder>Johannes Berg</holder>
++    </copyright>
 +
- 	__NL80211_ATTR_AFTER_LAST,
- 	NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1
- };
-@@ -213,6 +253,7 @@ enum nl80211_attrs {
-  * @NL80211_IFTYPE_AP_VLAN: VLAN interface for access points
-  * @NL80211_IFTYPE_WDS: wireless distribution interface
-  * @NL80211_IFTYPE_MONITOR: monitor interface receiving all frames
-+ * @NL80211_IFTYPE_MESH_POINT: mesh point
-  * @NL80211_IFTYPE_MAX: highest interface type number currently defined
-  * @__NL80211_IFTYPE_AFTER_LAST: internal use
-  *
-@@ -228,6 +269,7 @@ enum nl80211_iftype {
- 	NL80211_IFTYPE_AP_VLAN,
- 	NL80211_IFTYPE_WDS,
- 	NL80211_IFTYPE_MONITOR,
-+	NL80211_IFTYPE_MESH_POINT,
- 
- 	/* keep last */
- 	__NL80211_IFTYPE_AFTER_LAST,
-@@ -257,27 +299,167 @@ enum nl80211_sta_flags {
- };
- 
- /**
-- * enum nl80211_sta_stats - station statistics
-+ * enum nl80211_sta_info - station information
-  *
-- * These attribute types are used with %NL80211_ATTR_STA_STATS
-+ * These attribute types are used with %NL80211_ATTR_STA_INFO
-  * when getting information about a station.
-  *
-- * @__NL80211_STA_STAT_INVALID: attribute number 0 is reserved
-- * @NL80211_STA_STAT_INACTIVE_TIME: time since last activity (u32, msecs)
-- * @NL80211_STA_STAT_RX_BYTES: total received bytes (u32, from this station)
-- * @NL80211_STA_STAT_TX_BYTES: total transmitted bytes (u32, to this station)
-- * @__NL80211_STA_STAT_AFTER_LAST: internal
-- * @NL80211_STA_STAT_MAX: highest possible station stats attribute
-- */
--enum nl80211_sta_stats {
--	__NL80211_STA_STAT_INVALID,
--	NL80211_STA_STAT_INACTIVE_TIME,
--	NL80211_STA_STAT_RX_BYTES,
--	NL80211_STA_STAT_TX_BYTES,
-+ * @__NL80211_STA_INFO_INVALID: attribute number 0 is reserved
-+ * @NL80211_STA_INFO_INACTIVE_TIME: time since last activity (u32, msecs)
-+ * @NL80211_STA_INFO_RX_BYTES: total received bytes (u32, from this station)
-+ * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (u32, to this station)
-+ * @__NL80211_STA_INFO_AFTER_LAST: internal
-+ * @NL80211_STA_INFO_MAX: highest possible station info attribute
-+ */
-+enum nl80211_sta_info {
-+	__NL80211_STA_INFO_INVALID,
-+	NL80211_STA_INFO_INACTIVE_TIME,
-+	NL80211_STA_INFO_RX_BYTES,
-+	NL80211_STA_INFO_TX_BYTES,
-+	NL80211_STA_INFO_LLID,
-+	NL80211_STA_INFO_PLID,
-+	NL80211_STA_INFO_PLINK_STATE,
++    <legalnotice>
++      <para>
++        This documentation is free software; you can redistribute
++        it and/or modify it under the terms of the GNU General Public
++        License version 2 as published by the Free Software Foundation.
++      </para>
 +
-+	/* keep last */
-+	__NL80211_STA_INFO_AFTER_LAST,
-+	NL80211_STA_INFO_MAX = __NL80211_STA_INFO_AFTER_LAST - 1
-+};
++      <para>
++        This documentation is distributed in the hope that it will be
++        useful, but WITHOUT ANY WARRANTY; without even the implied
++        warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
++        See the GNU General Public License for more details.
++      </para>
 +
-+/**
-+ * enum nl80211_mpath_flags - nl80211 mesh path flags
-+ *
-+ * @NL80211_MPATH_FLAG_ACTIVE: the mesh path is active
-+ * @NL80211_MPATH_FLAG_RESOLVING: the mesh path discovery process is running
-+ * @NL80211_MPATH_FLAG_DSN_VALID: the mesh path contains a valid DSN
-+ * @NL80211_MPATH_FLAG_FIXED: the mesh path has been manually set
-+ * @NL80211_MPATH_FLAG_RESOLVED: the mesh path discovery process succeeded
-+ */
-+enum nl80211_mpath_flags {
-+	NL80211_MPATH_FLAG_ACTIVE =	1<<0,
[...173314 lines suppressed...]
++{
++	enum ieee80211_band band;
++	struct ieee80211_supported_band *sband;
++	int i;
 +
-+    <chapter id="hardware-scan-offload">
-+      <title>Hardware scan offload</title>
-+      <para>TBD</para>
-+!Finclude/net/mac80211.h ieee80211_scan_completed
-+    </chapter>
-+  </part>
++	for (band = 0; band < IEEE80211_NUM_BANDS; band++) {
++		sband = wiphy->bands[band];
 +
-+  <part id="rate-control">
-+    <title>Rate control interface</title>
-+    <partintro>
-+      <para>TBD</para>
-+      <para>
-+       This part of the book describes the rate control algorithm
-+       interface and how it relates to mac80211 and drivers.
-+      </para>
-+    </partintro>
-+    <chapter id="dummy">
-+      <title>dummy chapter</title>
-+      <para>TBD</para>
-+    </chapter>
-+  </part>
++		if (!sband)
++			continue;
 +
-+  <part id="internal">
-+    <title>Internals</title>
-+    <partintro>
-+      <para>TBD</para>
-+      <para>
-+       This part of the book describes mac80211 internals.
-+      </para>
-+    </partintro>
++		for (i = 0; i < sband->n_channels; i++) {
++			if (sband->channels[i].center_freq == freq)
++				return &sband->channels[i];
++		}
++	}
 +
-+    <chapter id="key-handling">
-+      <title>Key handling</title>
-+      <sect1>
-+        <title>Key handling basics</title>
-+!Pnet/mac80211/key.c Key handling basics
-+      </sect1>
-+      <sect1>
-+        <title>MORE TBD</title>
-+        <para>TBD</para>
-+      </sect1>
-+    </chapter>
++	return NULL;
++}
++EXPORT_SYMBOL(__ieee80211_get_channel);
 +
-+    <chapter id="rx-processing">
-+      <title>Receive processing</title>
-+      <para>TBD</para>
-+    </chapter>
++static void set_mandatory_flags_band(struct ieee80211_supported_band *sband,
++				     enum ieee80211_band band)
++{
++	int i, want;
 +
-+    <chapter id="tx-processing">
-+      <title>Transmit processing</title>
-+      <para>TBD</para>
-+    </chapter>
++	switch (band) {
++	case IEEE80211_BAND_5GHZ:
++		want = 3;
++		for (i = 0; i < sband->n_bitrates; i++) {
++			if (sband->bitrates[i].bitrate == 60 ||
++			    sband->bitrates[i].bitrate == 120 ||
++			    sband->bitrates[i].bitrate == 240) {
++				sband->bitrates[i].flags |=
++					IEEE80211_RATE_MANDATORY_A;
++				want--;
++			}
++		}
++		WARN_ON(want);
++		break;
++	case IEEE80211_BAND_2GHZ:
++		want = 7;
++		for (i = 0; i < sband->n_bitrates; i++) {
++			if (sband->bitrates[i].bitrate == 10) {
++				sband->bitrates[i].flags |=
++					IEEE80211_RATE_MANDATORY_B |
++					IEEE80211_RATE_MANDATORY_G;
++				want--;
++			}
 +
-+    <chapter id="sta-info">
-+      <title>Station info handling</title>
-+      <sect1>
-+        <title>Programming information</title>
-+!Fnet/mac80211/sta_info.h sta_info
-+!Fnet/mac80211/sta_info.h ieee80211_sta_info_flags
-+      </sect1>
-+      <sect1>
-+        <title>STA information lifetime rules</title>
-+!Pnet/mac80211/sta_info.c STA information lifetime rules
-+      </sect1>
-+    </chapter>
++			if (sband->bitrates[i].bitrate == 20 ||
++			    sband->bitrates[i].bitrate == 55 ||
++			    sband->bitrates[i].bitrate == 110 ||
++			    sband->bitrates[i].bitrate == 60 ||
++			    sband->bitrates[i].bitrate == 120 ||
++			    sband->bitrates[i].bitrate == 240) {
++				sband->bitrates[i].flags |=
++					IEEE80211_RATE_MANDATORY_G;
++				want--;
++			}
 +
-+    <chapter id="synchronisation">
-+      <title>Synchronisation</title>
-+      <para>TBD</para>
-+      <para>Locking, lots of RCU</para>
-+    </chapter>
-+  </part>
-+</book>
-diff -up linux-2.6.24.noarch/Documentation/DocBook/Makefile.orig linux-2.6.24.noarch/Documentation/DocBook/Makefile
---- linux-2.6.24.noarch/Documentation/DocBook/Makefile.orig	2008-04-08 00:15:26.000000000 -0400
-+++ linux-2.6.24.noarch/Documentation/DocBook/Makefile	2008-04-08 00:15:33.000000000 -0400
-@@ -11,7 +11,8 @@ DOCBOOKS := wanbook.xml z8530book.xml mc
- 	    procfs-guide.xml writing_usb_driver.xml networking.xml \
- 	    kernel-api.xml filesystems.xml lsm.xml usb.xml \
- 	    gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \
--	    genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml
-+	    genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \
-+	    mac80211.xml
- 
- ###
- # The build process is as follows (targets):
-diff -up linux-2.6.24.noarch/Documentation/feature-removal-schedule.txt.orig linux-2.6.24.noarch/Documentation/feature-removal-schedule.txt
---- linux-2.6.24.noarch/Documentation/feature-removal-schedule.txt.orig	2008-04-08 00:15:26.000000000 -0400
-+++ linux-2.6.24.noarch/Documentation/feature-removal-schedule.txt	2008-04-08 00:15:33.000000000 -0400
-@@ -230,33 +230,6 @@ Who:	Jean Delvare <khali at linux-fr.org>
- 
- ---------------------------
- 
--What:	bcm43xx wireless network driver
--When:	2.6.26
--Files:	drivers/net/wireless/bcm43xx
--Why:	This driver's functionality has been replaced by the
--	mac80211-based b43 and b43legacy drivers.
--Who:	John W. Linville <linville at tuxdriver.com>
--
-----------------------------
--
--What:	ieee80211 softmac wireless networking component
--When:	2.6.26 (or after removal of bcm43xx and port of zd1211rw to mac80211)
--Files:	net/ieee80211/softmac
--Why:	No in-kernel drivers will depend on it any longer.
--Who:	John W. Linville <linville at tuxdriver.com>
--
-----------------------------
--
--What:	rc80211-simple rate control algorithm for mac80211
--When:	2.6.26
--Files:	net/mac80211/rc80211-simple.c
--Why:	This algorithm was provided for reference but always exhibited bad
--	responsiveness and performance and has some serious flaws. It has been
--	replaced by rc80211-pid.
--Who:	Stefano Brivio <stefano.brivio at polimi.it>
--
-----------------------------
--
- What (Why):
- 	- include/linux/netfilter_ipv4/ipt_TOS.h ipt_tos.h header files
- 	  (superseded by xt_TOS/xt_tos target & match)
++			if (sband->bitrates[i].bitrate != 10 &&
++			    sband->bitrates[i].bitrate != 20 &&
++			    sband->bitrates[i].bitrate != 55 &&
++			    sband->bitrates[i].bitrate != 110)
++				sband->bitrates[i].flags |=
++					IEEE80211_RATE_ERP_G;
++		}
++		WARN_ON(want != 0 && want != 3 && want != 6);
++		break;
++	case IEEE80211_NUM_BANDS:
++		WARN_ON(1);
++		break;
++	}
++}
++
++void ieee80211_set_bitrate_flags(struct wiphy *wiphy)
++{
++	enum ieee80211_band band;
++
++	for (band = 0; band < IEEE80211_NUM_BANDS; band++)
++		if (wiphy->bands[band])
++			set_mandatory_flags_band(wiphy->bands[band], band);
++}


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/sources,v
retrieving revision 1.770
retrieving revision 1.771
diff -u -r1.770 -r1.771
--- sources	17 Apr 2008 04:39:00 -0000	1.770
+++ sources	3 May 2008 03:36:58 -0000	1.771
@@ -1 +1,2 @@
 db95a49a656a3247d4995a797d333153  linux-2.6.25.tar.bz2
+a30cc67dace1035493cb088f97f84330  patch-2.6.25.1.bz2


Index: upstream
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/upstream,v
retrieving revision 1.689
retrieving revision 1.690
diff -u -r1.689 -r1.690
--- upstream	17 Apr 2008 04:39:00 -0000	1.689
+++ upstream	3 May 2008 03:36:58 -0000	1.690
@@ -1 +1,2 @@
 linux-2.6.25.tar.bz2
+patch-2.6.25.1.bz2




More information about the fedora-extras-commits mailing list