Revert PCIBIOS_MIN_IO changes for 2.6.13

2005-08-14 Thread Linux Kernel Mailing List
tree f8a746aca3ca8aeb832d83e9297f2ffe636082c6
parent b4b08e581fac8e0ba9ae348bdc13246c9798c99e
author Linus Torvalds <[EMAIL PROTECTED]> Mon, 15 Aug 2005 08:21:30 -0700
committer Linus Torvalds <[EMAIL PROTECTED]> Mon, 15 Aug 2005 08:21:30 -0700

Revert PCIBIOS_MIN_IO changes for 2.6.13

This reverts commits

  71db63acff69618b3d9d3114bd061938150e146b
[PATCH] increase PCIBIOS_MIN_IO on x86

and

  0b2bfb4e7ff61f286676867c3508569bea6fbf7a
ACPI: increase PCIBIOS_MIN_IO on x86

since Lukas Sandströ<[EMAIL PROTECTED]> reports that this breaks
his on-board nvidia audio.

We should re-visit this later. For now we revert the change

Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>

 drivers/acpi/motherboard.c |2 +-
 include/asm-i386/pci.h |4 +++-
 include/asm-x86_64/pci.h   |4 +++-
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/acpi/motherboard.c b/drivers/acpi/motherboard.c
--- a/drivers/acpi/motherboard.c
+++ b/drivers/acpi/motherboard.c
@@ -43,7 +43,7 @@ ACPI_MODULE_NAME  ("acpi_motherboard")
  */
 #define IS_RESERVED_ADDR(base, len) \
(((len) > 0) && ((base) > 0) && ((base) + (len) < IO_SPACE_LIMIT) \
-   && ((base) + (len) > 0x1000))
+   && ((base) + (len) > PCIBIOS_MIN_IO))
 
 /*
  * Clearing the flag (IORESOURCE_BUSY) allows drivers to use
diff --git a/include/asm-i386/pci.h b/include/asm-i386/pci.h
--- a/include/asm-i386/pci.h
+++ b/include/asm-i386/pci.h
@@ -18,9 +18,11 @@ extern unsigned int pcibios_assign_all_b
 #define pcibios_scan_all_fns(a, b) 0
 
 extern unsigned long pci_mem_start;
-#define PCIBIOS_MIN_IO 0x4000
+#define PCIBIOS_MIN_IO 0x1000
 #define PCIBIOS_MIN_MEM(pci_mem_start)
 
+#define PCIBIOS_MIN_CARDBUS_IO 0x4000
+
 void pcibios_config_init(void);
 struct pci_bus * pcibios_scan_root(int bus);
 
diff --git a/include/asm-x86_64/pci.h b/include/asm-x86_64/pci.h
--- a/include/asm-x86_64/pci.h
+++ b/include/asm-x86_64/pci.h
@@ -22,9 +22,11 @@ extern unsigned int pcibios_assign_all_b
 extern int no_iommu, force_iommu;
 
 extern unsigned long pci_mem_start;
-#define PCIBIOS_MIN_IO 0x4000
+#define PCIBIOS_MIN_IO 0x1000
 #define PCIBIOS_MIN_MEM(pci_mem_start)
 
+#define PCIBIOS_MIN_CARDBUS_IO 0x4000
+
 void pcibios_config_init(void);
 struct pci_bus * pcibios_scan_root(int bus);
 extern int (*pci_config_read)(int seg, int bus, int dev, int fn, int reg, int 
len, u32 *value);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Revert "dc395x: Fix support for highmem"

2005-08-14 Thread Linux Kernel Mailing List
tree b09ea9a12a65f0a03fa7a15b0e661756913a0262
parent 27876d02b30aa34bb1ad35b81ccc40c174282f31
author Linus Torvalds <[EMAIL PROTECTED]> Mon, 15 Aug 2005 05:43:39 -0700
committer Linus Torvalds <[EMAIL PROTECTED]> Mon, 15 Aug 2005 05:43:39 -0700

Revert "dc395x: Fix support for highmem"

It introduces a repeatable oops in the driver, which is a bigger problem
than the patch tries to solve. From the original description:

Author: Jamie Lenehan <[EMAIL PROTECTED]>
Date:   Thu Mar 3 14:41:40 2005 +0200

[PATCH] dc395x: Fix support for highmem

From: Guennadi Liakhovetski <[EMAIL PROTECTED]>

Removes the page_to_virt and maps sg lists dynamically.
This makes the driver work with highmem pages.

Signed-off-by: Guennadi Liakhovetski <[EMAIL PROTECTED]>
Signed-off-by: Jamie Lenehan <[EMAIL PROTECTED]>
Signed-off-by: James Bottomley <[EMAIL PROTECTED]>

Signed-off-by: Guennadi Liakhovetski <[EMAIL PROTECTED]>
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>

 drivers/scsi/dc395x.c |   48 +---
 1 files changed, 13 insertions(+), 35 deletions(-)

diff --git a/drivers/scsi/dc395x.c b/drivers/scsi/dc395x.c
--- a/drivers/scsi/dc395x.c
+++ b/drivers/scsi/dc395x.c
@@ -183,7 +183,7 @@
  * cross a page boundy.
  */
 #define SEGMENTX_LEN   (sizeof(struct SGentry)*DC395x_MAX_SG_LISTENTRY)
-#define VIRTX_LEN  (sizeof(void *) * DC395x_MAX_SG_LISTENTRY)
+
 
 struct SGentry {
u32 address;/* bus! address */
@@ -235,7 +235,6 @@ struct ScsiReqBlk {
u8 sg_count;/* No of HW sg entries for this request 
*/
u8 sg_index;/* Index of HW sg entry for this 
request */
u32 total_xfer_length;  /* Total number of bytes remaining to 
be transfered */
-   void **virt_map;
unsigned char *virt_addr;   /* Virtual address of current transfer 
position */
 
/*
@@ -1022,14 +1021,14 @@ static void build_srb(struct scsi_cmnd *
reqlen, cmd->request_buffer, cmd->use_sg,
srb->sg_count);
 
+   srb->virt_addr = page_address(sl->page);
for (i = 0; i < srb->sg_count; i++) {
-   u32 seglen = (u32)sg_dma_len(sl + i);
-   sgp[i].address = (u32)sg_dma_address(sl + i);
+   u32 busaddr = (u32)sg_dma_address(&sl[i]);
+   u32 seglen = (u32)sl[i].length;
+   sgp[i].address = busaddr;
sgp[i].length = seglen;
srb->total_xfer_length += seglen;
-   srb->virt_map[i] = kmap(sl[i].page);
}
-   srb->virt_addr = srb->virt_map[0];
sgp += srb->sg_count - 1;
 
/*
@@ -1976,7 +1975,6 @@ static void sg_update_list(struct ScsiRe
int segment = cmd->use_sg;
u32 xferred = srb->total_xfer_length - left; /* bytes transfered */
struct SGentry *psge = srb->segment_x + srb->sg_index;
-   void **virt = srb->virt_map;
 
dprintkdbg(DBG_0,
"sg_update_list: Transfered %i of %i bytes, %i remain\n",
@@ -2016,16 +2014,16 @@ static void sg_update_list(struct ScsiRe
 
/* We have to walk the scatterlist to find it */
sg = (struct scatterlist *)cmd->request_buffer;
-   idx = 0;
while (segment--) {
unsigned long mask =
~((unsigned long)sg->length - 1) & PAGE_MASK;
if ((sg_dma_address(sg) & mask) == (psge->address & mask)) {
-   srb->virt_addr = virt[idx] + (psge->address & 
~PAGE_MASK);
+   srb->virt_addr = (page_address(sg->page)
+  + psge->address -
+  (psge->address & PAGE_MASK));
return;
}
++sg;
-   ++idx;
}
 
dprintkl(KERN_ERR, "sg_update_list: sg_to_virt failed\n");
@@ -2151,7 +2149,7 @@ static void data_out_phase0(struct Adapt
DC395x_read32(acb, TRM_S1040_DMA_CXCNT));
}
/*
-* calculate all the residue data that not yet transfered
+* calculate all the residue data that not yet tranfered
 * SCSI transfer counter + left in SCSI FIFO data
 *
 * .TRM_S1040_SCSI_COUNTER (24bits)
@@ -3269,7 +3267,6 @@ static void pci_unmap_srb(struct Adapter
struct scsi_cmnd *cmd = srb->cmd;
enum dma_data_direction dir = cmd->sc_data_direction;
if (cmd->use_sg && dir != PCI_DMA_NONE) {
-   int i;
/* unmap DC395x SG list */
dprintkdbg(DBG_SG, "pci_unmap_srb: list=%08x(%05x)\n",
srb->sg_bus_addr, SEGMENTX_LEN);
@@ -3279,8 +3276,6 @@ static void pci_unmap_srb(struct

[PATCH] CIFS: Fix path name conversion for long filenames

2005-08-14 Thread Linux Kernel Mailing List
tree ba07379df3c12bd963363d0a3205a201688a5e4d
parent d024709deb4997aced6140a62e8ee82b10666c5f
author Steve French <[EMAIL PROTECTED]> Mon, 15 Aug 2005 02:55:23 -0500
committer Linus Torvalds <[EMAIL PROTECTED]> Mon, 15 Aug 2005 05:27:24 -0700

[PATCH] CIFS: Fix path name conversion for long filenames

Fix path name conversion for long filenames when mapchars mount option
was specified at mount time.

Signed-off-by: Steve French ([EMAIL PROTECTED])
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>

 fs/cifs/CHANGES |6 ++
 fs/cifs/misc.c  |1 +
 2 files changed, 7 insertions(+)

diff --git a/fs/cifs/CHANGES b/fs/cifs/CHANGES
--- a/fs/cifs/CHANGES
+++ b/fs/cifs/CHANGES
@@ -1,3 +1,9 @@
+Version 1.35
+
+Add writepage performance improvements.  Fix path name conversions
+for long filenames on mounts which were done with "mapchars" mount option
+specified.
+
 Version 1.34
 
 Fix error mapping of the TOO_MANY_LINKS (hardlinks) case.
diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c
--- a/fs/cifs/misc.c
+++ b/fs/cifs/misc.c
@@ -611,6 +611,7 @@ cifsConvertToUCS(__le16 * target, const 
src_char = source[i];
switch (src_char) {
case 0:
+   target[j] = 0;
goto ctoUCS_out;
case ':':
target[j] = cpu_to_le16(UNI_COLON);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] CIFS: Fix missing entries in search results

2005-08-14 Thread Linux Kernel Mailing List
tree c383ee45809d28079b4dcd554f9953509c57da1b
parent 1b0a74d1c002320d5488333dd9c72126af1aab02
author Steve French <[EMAIL PROTECTED]> Mon, 15 Aug 2005 02:55:23 -0500
committer Linus Torvalds <[EMAIL PROTECTED]> Mon, 15 Aug 2005 05:27:24 -0700

[PATCH] CIFS: Fix missing entries in search results

Fix missing entries in search results when very long file names and more
than 50 (or so) of such long search entries in the directory.

FindNext could send corrupt last byte of resume name when resume key was
a few hundred bytes long file name or longer.

Fixes Samba Bug # 2932

Signed-off-by: Steve French ([EMAIL PROTECTED])
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>

 fs/cifs/cifssmb.c |3 +++
 1 files changed, 3 insertions(+)

diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
--- a/fs/cifs/cifssmb.c
+++ b/fs/cifs/cifssmb.c
@@ -2602,6 +2602,9 @@ int CIFSFindNext(const int xid, struct c
if(name_len < PATH_MAX) {
memcpy(pSMB->ResumeFileName, psrch_inf->presume_name, name_len);
byte_count += name_len;
+   /* 14 byte parm len above enough for 2 byte null terminator */
+   pSMB->ResumeFileName[name_len] = 0;
+   pSMB->ResumeFileName[name_len+1] = 0;
} else {
rc = -EINVAL;
goto FNext2_err_exit;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html