add stable 2.6.23.1
svn path=/dists/trunk/linux-2.6/; revision=9651
This commit is contained in:
parent
a55e997cef
commit
40bedbb5fe
|
@ -25,6 +25,8 @@ linux-2.6 (2.6.23-1~experimental.1) UNRELEASED; urgency=low
|
|||
* Add git-ieee1394.patch for latest firewire fixes.
|
||||
* [ipv6] Enable IPV6_MULTIPLE_TABLES, IPV6_SUBTREES. (closes: #441226)
|
||||
* Add and enable E1000E.
|
||||
* Add stable release 2.6.23.1:
|
||||
- libata: sata_mv: more S/G fixes
|
||||
|
||||
[ Martin Michlmayr ]
|
||||
* [mips] Add a bcm1480 PCI build fix.
|
||||
|
@ -97,7 +99,7 @@ linux-2.6 (2.6.23-1~experimental.1) UNRELEASED; urgency=low
|
|||
[ dann frazier ]
|
||||
* [ia64] Re-enable various unintentionally disabled config options
|
||||
|
||||
-- dann frazier <dannf@debian.org> Thu, 11 Oct 2007 23:17:17 -0600
|
||||
-- maximilian attems <maks@debian.org> Sat, 13 Oct 2007 14:37:28 +0200
|
||||
|
||||
linux-2.6 (2.6.22-5) unstable; urgency=low
|
||||
|
||||
|
|
|
@ -0,0 +1,95 @@
|
|||
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
|
||||
index cb7dec9..d9832e2 100644
|
||||
--- a/drivers/ata/sata_mv.c
|
||||
+++ b/drivers/ata/sata_mv.c
|
||||
@@ -69,10 +69,11 @@
|
||||
#include <linux/device.h>
|
||||
#include <scsi/scsi_host.h>
|
||||
#include <scsi/scsi_cmnd.h>
|
||||
+#include <scsi/scsi_device.h>
|
||||
#include <linux/libata.h>
|
||||
|
||||
#define DRV_NAME "sata_mv"
|
||||
-#define DRV_VERSION "1.0"
|
||||
+#define DRV_VERSION "1.01"
|
||||
|
||||
enum {
|
||||
/* BAR's are enumerated in terms of pci_resource_start() terms */
|
||||
@@ -420,6 +421,7 @@ static void mv_error_handler(struct ata_port *ap);
|
||||
static void mv_post_int_cmd(struct ata_queued_cmd *qc);
|
||||
static void mv_eh_freeze(struct ata_port *ap);
|
||||
static void mv_eh_thaw(struct ata_port *ap);
|
||||
+static int mv_slave_config(struct scsi_device *sdev);
|
||||
static int mv_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
|
||||
|
||||
static void mv5_phy_errata(struct mv_host_priv *hpriv, void __iomem *mmio,
|
||||
@@ -457,7 +459,7 @@ static struct scsi_host_template mv5_sht = {
|
||||
.use_clustering = 1,
|
||||
.proc_name = DRV_NAME,
|
||||
.dma_boundary = MV_DMA_BOUNDARY,
|
||||
- .slave_configure = ata_scsi_slave_config,
|
||||
+ .slave_configure = mv_slave_config,
|
||||
.slave_destroy = ata_scsi_slave_destroy,
|
||||
.bios_param = ata_std_bios_param,
|
||||
};
|
||||
@@ -475,7 +477,7 @@ static struct scsi_host_template mv6_sht = {
|
||||
.use_clustering = 1,
|
||||
.proc_name = DRV_NAME,
|
||||
.dma_boundary = MV_DMA_BOUNDARY,
|
||||
- .slave_configure = ata_scsi_slave_config,
|
||||
+ .slave_configure = mv_slave_config,
|
||||
.slave_destroy = ata_scsi_slave_destroy,
|
||||
.bios_param = ata_std_bios_param,
|
||||
};
|
||||
@@ -763,6 +765,17 @@ static void mv_irq_clear(struct ata_port *ap)
|
||||
{
|
||||
}
|
||||
|
||||
+static int mv_slave_config(struct scsi_device *sdev)
|
||||
+{
|
||||
+ int rc = ata_scsi_slave_config(sdev);
|
||||
+ if (rc)
|
||||
+ return rc;
|
||||
+
|
||||
+ blk_queue_max_phys_segments(sdev->request_queue, MV_MAX_SG_CT / 2);
|
||||
+
|
||||
+ return 0; /* scsi layer doesn't check return value, sigh */
|
||||
+}
|
||||
+
|
||||
static void mv_set_edma_ptrs(void __iomem *port_mmio,
|
||||
struct mv_host_priv *hpriv,
|
||||
struct mv_port_priv *pp)
|
||||
@@ -1130,10 +1143,9 @@ static void mv_port_stop(struct ata_port *ap)
|
||||
* LOCKING:
|
||||
* Inherited from caller.
|
||||
*/
|
||||
-static unsigned int mv_fill_sg(struct ata_queued_cmd *qc)
|
||||
+static void mv_fill_sg(struct ata_queued_cmd *qc)
|
||||
{
|
||||
struct mv_port_priv *pp = qc->ap->private_data;
|
||||
- unsigned int n_sg = 0;
|
||||
struct scatterlist *sg;
|
||||
struct mv_sg *mv_sg;
|
||||
|
||||
@@ -1151,7 +1163,7 @@ static unsigned int mv_fill_sg(struct ata_queued_cmd *qc)
|
||||
|
||||
mv_sg->addr = cpu_to_le32(addr & 0xffffffff);
|
||||
mv_sg->addr_hi = cpu_to_le32((addr >> 16) >> 16);
|
||||
- mv_sg->flags_size = cpu_to_le32(len);
|
||||
+ mv_sg->flags_size = cpu_to_le32(len & 0xffff);
|
||||
|
||||
sg_len -= len;
|
||||
addr += len;
|
||||
@@ -1160,12 +1172,9 @@ static unsigned int mv_fill_sg(struct ata_queued_cmd *qc)
|
||||
mv_sg->flags_size |= cpu_to_le32(EPRD_FLAG_END_OF_TBL);
|
||||
|
||||
mv_sg++;
|
||||
- n_sg++;
|
||||
}
|
||||
|
||||
}
|
||||
-
|
||||
- return n_sg;
|
||||
}
|
||||
|
||||
static inline void mv_crqb_pack_cmd(__le16 *cmdw, u8 data, u8 addr, unsigned last)
|
|
@ -45,3 +45,4 @@
|
|||
+ features/all/v7-iwlwifi-add-iwlwifi-wireless-drivers.patch
|
||||
+ features/all/e1000e-20070806.patch
|
||||
+ features/all/e1000e-fixes.patch
|
||||
+ bugfix/all/2.6.23.1
|
||||
|
|
Loading…
Reference in New Issue