diff for duplicates of <11181019442715@foobar.com> diff --git a/a/1.txt b/N1/1.txt index 252bab9..8dcbf45 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,17 +1,14 @@ -Fix sysfs config space access similar to the recent PCI sysfs changes.=20 +Fix sysfs config space access similar to the recent PCI sysfs changes. Signed-off-by: Matt Porter <mporter@kernel.crashing.org> commit 2a28743938495ab6055db2e29f3e0721bba022cc tree 09d592a46eff8592327b20c609595eb8b7d5e333 parent d45c2d2fedcafd50a860267ff1d517c3071ab585 -author Matt Porter <mporter@kernel.crashing.org> Mon, 06 Jun 2005 14:50:28 = --0700 -committer Matt Porter <mporter@kernel.crashing.org> Mon, 06 Jun 2005 14:50:= -28 -0700 +author Matt Porter <mporter@kernel.crashing.org> Mon, 06 Jun 2005 14:50:28 -0700 +committer Matt Porter <mporter@kernel.crashing.org> Mon, 06 Jun 2005 14:50:28 -0700 - drivers/rio/rio-sysfs.c | 82 +++++++++++++++++++++++++++++++++----------= ----- + drivers/rio/rio-sysfs.c | 82 +++++++++++++++++++++++++++++++++-------------- 1 files changed, 58 insertions(+), 24 deletions(-) diff --git a/drivers/rio/rio-sysfs.c b/drivers/rio/rio-sysfs.c @@ -19,30 +16,30 @@ diff --git a/drivers/rio/rio-sysfs.c b/drivers/rio/rio-sysfs.c +++ b/drivers/rio/rio-sysfs.c @@ -74,10 +74,11 @@ rio_read_config(struct kobject *kobj, ch to_rio_dev(container_of(kobj, struct device, kobj)); - unsigned int size =3D 0x100; - loff_t init_off =3D off; -+ u8 *data =3D (u8 *) buf; -=20 + unsigned int size = 0x100; + loff_t init_off = off; ++ u8 *data = (u8 *) buf; + /* Several chips lock up trying to read undefined config space */ if (capable(CAP_SYS_ADMIN)) -- size =3D 0x80000; -+ size =3D 0x200000; -=20 +- size = 0x80000; ++ size = 0x200000; + if (off > size) return 0; @@ -88,30 +89,47 @@ rio_read_config(struct kobject *kobj, ch - size =3D count; + size = count; } -=20 + - while (off & 3) { - unsigned char val; + if ((off & 1) && size) { + u8 val; rio_read_config_8(dev, off, &val); -- buf[off - init_off] =3D val; -+ data[off - init_off] =3D val; +- buf[off - init_off] = val; ++ data[off - init_off] = val; off++; -- if (--size =3D=3D 0) +- if (--size == 0) - break; + size--; + } @@ -50,99 +47,99 @@ diff --git a/drivers/rio/rio-sysfs.c b/drivers/rio/rio-sysfs.c + if ((off & 3) && size > 2) { + u16 val; + rio_read_config_16(dev, off, &val); -+ data[off - init_off] =3D (val >> 8) & 0xff; -+ data[off - init_off + 1] =3D val & 0xff; -+ off +=3D 2; -+ size -=3D 2; ++ data[off - init_off] = (val >> 8) & 0xff; ++ data[off - init_off + 1] = val & 0xff; ++ off += 2; ++ size -= 2; } -=20 + while (size > 3) { - unsigned int val; + u32 val; rio_read_config_32(dev, off, &val); -- buf[off - init_off] =3D (val >> 24) & 0xff; -- buf[off - init_off + 1] =3D (val >> 16) & 0xff; -- buf[off - init_off + 2] =3D (val >> 8) & 0xff; -- buf[off - init_off + 3] =3D val & 0xff; -+ data[off - init_off] =3D (val >> 24) & 0xff; -+ data[off - init_off + 1] =3D (val >> 16) & 0xff; -+ data[off - init_off + 2] =3D (val >> 8) & 0xff; -+ data[off - init_off + 3] =3D val & 0xff; - off +=3D 4; - size -=3D 4; +- buf[off - init_off] = (val >> 24) & 0xff; +- buf[off - init_off + 1] = (val >> 16) & 0xff; +- buf[off - init_off + 2] = (val >> 8) & 0xff; +- buf[off - init_off + 3] = val & 0xff; ++ data[off - init_off] = (val >> 24) & 0xff; ++ data[off - init_off + 1] = (val >> 16) & 0xff; ++ data[off - init_off + 2] = (val >> 8) & 0xff; ++ data[off - init_off + 3] = val & 0xff; + off += 4; + size -= 4; } -=20 + - while (size > 0) { - unsigned char val; -+ if (size >=3D 2) { ++ if (size >= 2) { + u16 val; + rio_read_config_16(dev, off, &val); -+ data[off - init_off] =3D (val >> 8) & 0xff; -+ data[off - init_off + 1] =3D val & 0xff; -+ off +=3D 2; -+ size -=3D 2; ++ data[off - init_off] = (val >> 8) & 0xff; ++ data[off - init_off + 1] = val & 0xff; ++ off += 2; ++ size -= 2; + } + + if (size > 0) { + u8 val; rio_read_config_8(dev, off, &val); -- buf[off - init_off] =3D val; -+ data[off - init_off] =3D val; +- buf[off - init_off] = val; ++ data[off - init_off] = val; off++; --size; } @@ -126,6 +144,7 @@ rio_write_config(struct kobject *kobj, c to_rio_dev(container_of(kobj, struct device, kobj)); - unsigned int size =3D count; - loff_t init_off =3D off; -+ u8 *data =3D (u8 *) buf; -=20 + unsigned int size = count; + loff_t init_off = off; ++ u8 *data = (u8 *) buf; + if (off > 0x200000) return 0; @@ -134,25 +153,40 @@ rio_write_config(struct kobject *kobj, c - count =3D size; + count = size; } -=20 + - while (off & 3) { - rio_write_config_8(dev, off, buf[off - init_off]); + if ((off & 1) && size) { + rio_write_config_8(dev, off, data[off - init_off]); off++; -- if (--size =3D=3D 0) +- if (--size == 0) - break; + size--; + } + + if ((off & 3) && (size > 2)) { -+ u16 val =3D data[off - init_off + 1]; -+ val |=3D (u16) data[off - init_off] << 8; ++ u16 val = data[off - init_off + 1]; ++ val |= (u16) data[off - init_off] << 8; + rio_write_config_16(dev, off, val); -+ off +=3D 2; -+ size -=3D 2; ++ off += 2; ++ size -= 2; } -=20 + while (size > 3) { -- unsigned int val =3D buf[off - init_off + 3]; -- val |=3D (unsigned int)buf[off - init_off + 2] << 8; -- val |=3D (unsigned int)buf[off - init_off + 1] << 16; -- val |=3D (unsigned int)buf[off - init_off] << 24; -+ u32 val =3D data[off - init_off + 3]; -+ val |=3D (u32) data[off - init_off + 2] << 8; -+ val |=3D (u32) data[off - init_off + 1] << 16; -+ val |=3D (u32) data[off - init_off] << 24; +- unsigned int val = buf[off - init_off + 3]; +- val |= (unsigned int)buf[off - init_off + 2] << 8; +- val |= (unsigned int)buf[off - init_off + 1] << 16; +- val |= (unsigned int)buf[off - init_off] << 24; ++ u32 val = data[off - init_off + 3]; ++ val |= (u32) data[off - init_off + 2] << 8; ++ val |= (u32) data[off - init_off + 1] << 16; ++ val |= (u32) data[off - init_off] << 24; rio_write_config_32(dev, off, val); - off +=3D 4; - size -=3D 4; + off += 4; + size -= 4; } -=20 + - while (size > 0) { - rio_write_config_8(dev, off, buf[off - init_off]); -+ if (size >=3D 2) { -+ u16 val =3D data[off - init_off + 1]; -+ val |=3D (u16) data[off - init_off] << 8; ++ if (size >= 2) { ++ u16 val = data[off - init_off + 1]; ++ val |= (u16) data[off - init_off] << 8; + rio_write_config_16(dev, off, val); -+ off +=3D 2; -+ size -=3D 2; ++ off += 2; ++ size -= 2; + } + + if (size) { diff --git a/a/content_digest b/N1/content_digest index 5f4c018..9528d8c 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -7,20 +7,17 @@ " linuxppc-embedded@ozlabs.org\0" "\00:1\0" "b\0" - "Fix sysfs config space access similar to the recent PCI sysfs changes.=20\n" + "Fix sysfs config space access similar to the recent PCI sysfs changes. \n" "\n" "Signed-off-by: Matt Porter <mporter@kernel.crashing.org>\n" "\n" "commit 2a28743938495ab6055db2e29f3e0721bba022cc\n" "tree 09d592a46eff8592327b20c609595eb8b7d5e333\n" "parent d45c2d2fedcafd50a860267ff1d517c3071ab585\n" - "author Matt Porter <mporter@kernel.crashing.org> Mon, 06 Jun 2005 14:50:28 =\n" - "-0700\n" - "committer Matt Porter <mporter@kernel.crashing.org> Mon, 06 Jun 2005 14:50:=\n" - "28 -0700\n" + "author Matt Porter <mporter@kernel.crashing.org> Mon, 06 Jun 2005 14:50:28 -0700\n" + "committer Matt Porter <mporter@kernel.crashing.org> Mon, 06 Jun 2005 14:50:28 -0700\n" "\n" - " drivers/rio/rio-sysfs.c | 82 +++++++++++++++++++++++++++++++++----------=\n" - "----\n" + " drivers/rio/rio-sysfs.c | 82 +++++++++++++++++++++++++++++++++--------------\n" " 1 files changed, 58 insertions(+), 24 deletions(-)\n" "\n" "diff --git a/drivers/rio/rio-sysfs.c b/drivers/rio/rio-sysfs.c\n" @@ -28,30 +25,30 @@ "+++ b/drivers/rio/rio-sysfs.c\n" "@@ -74,10 +74,11 @@ rio_read_config(struct kobject *kobj, ch\n" " \t to_rio_dev(container_of(kobj, struct device, kobj));\n" - " \tunsigned int size =3D 0x100;\n" - " \tloff_t init_off =3D off;\n" - "+\tu8 *data =3D (u8 *) buf;\n" - "=20\n" + " \tunsigned int size = 0x100;\n" + " \tloff_t init_off = off;\n" + "+\tu8 *data = (u8 *) buf;\n" + " \n" " \t/* Several chips lock up trying to read undefined config space */\n" " \tif (capable(CAP_SYS_ADMIN))\n" - "-\t\tsize =3D 0x80000;\n" - "+\t\tsize =3D 0x200000;\n" - "=20\n" + "-\t\tsize = 0x80000;\n" + "+\t\tsize = 0x200000;\n" + " \n" " \tif (off > size)\n" " \t\treturn 0;\n" "@@ -88,30 +89,47 @@ rio_read_config(struct kobject *kobj, ch\n" - " \t\tsize =3D count;\n" + " \t\tsize = count;\n" " \t}\n" - "=20\n" + " \n" "-\twhile (off & 3) {\n" "-\t\tunsigned char val;\n" "+\tif ((off & 1) && size) {\n" "+\t\tu8 val;\n" " \t\trio_read_config_8(dev, off, &val);\n" - "-\t\tbuf[off - init_off] =3D val;\n" - "+\t\tdata[off - init_off] =3D val;\n" + "-\t\tbuf[off - init_off] = val;\n" + "+\t\tdata[off - init_off] = val;\n" " \t\toff++;\n" - "-\t\tif (--size =3D=3D 0)\n" + "-\t\tif (--size == 0)\n" "-\t\t\tbreak;\n" "+\t\tsize--;\n" "+\t}\n" @@ -59,99 +56,99 @@ "+\tif ((off & 3) && size > 2) {\n" "+\t\tu16 val;\n" "+\t\trio_read_config_16(dev, off, &val);\n" - "+\t\tdata[off - init_off] =3D (val >> 8) & 0xff;\n" - "+\t\tdata[off - init_off + 1] =3D val & 0xff;\n" - "+\t\toff +=3D 2;\n" - "+\t\tsize -=3D 2;\n" + "+\t\tdata[off - init_off] = (val >> 8) & 0xff;\n" + "+\t\tdata[off - init_off + 1] = val & 0xff;\n" + "+\t\toff += 2;\n" + "+\t\tsize -= 2;\n" " \t}\n" - "=20\n" + " \n" " \twhile (size > 3) {\n" "-\t\tunsigned int val;\n" "+\t\tu32 val;\n" " \t\trio_read_config_32(dev, off, &val);\n" - "-\t\tbuf[off - init_off] =3D (val >> 24) & 0xff;\n" - "-\t\tbuf[off - init_off + 1] =3D (val >> 16) & 0xff;\n" - "-\t\tbuf[off - init_off + 2] =3D (val >> 8) & 0xff;\n" - "-\t\tbuf[off - init_off + 3] =3D val & 0xff;\n" - "+\t\tdata[off - init_off] =3D (val >> 24) & 0xff;\n" - "+\t\tdata[off - init_off + 1] =3D (val >> 16) & 0xff;\n" - "+\t\tdata[off - init_off + 2] =3D (val >> 8) & 0xff;\n" - "+\t\tdata[off - init_off + 3] =3D val & 0xff;\n" - " \t\toff +=3D 4;\n" - " \t\tsize -=3D 4;\n" + "-\t\tbuf[off - init_off] = (val >> 24) & 0xff;\n" + "-\t\tbuf[off - init_off + 1] = (val >> 16) & 0xff;\n" + "-\t\tbuf[off - init_off + 2] = (val >> 8) & 0xff;\n" + "-\t\tbuf[off - init_off + 3] = val & 0xff;\n" + "+\t\tdata[off - init_off] = (val >> 24) & 0xff;\n" + "+\t\tdata[off - init_off + 1] = (val >> 16) & 0xff;\n" + "+\t\tdata[off - init_off + 2] = (val >> 8) & 0xff;\n" + "+\t\tdata[off - init_off + 3] = val & 0xff;\n" + " \t\toff += 4;\n" + " \t\tsize -= 4;\n" " \t}\n" - "=20\n" + " \n" "-\twhile (size > 0) {\n" "-\t\tunsigned char val;\n" - "+\tif (size >=3D 2) {\n" + "+\tif (size >= 2) {\n" "+\t\tu16 val;\n" "+\t\trio_read_config_16(dev, off, &val);\n" - "+\t\tdata[off - init_off] =3D (val >> 8) & 0xff;\n" - "+\t\tdata[off - init_off + 1] =3D val & 0xff;\n" - "+\t\toff +=3D 2;\n" - "+\t\tsize -=3D 2;\n" + "+\t\tdata[off - init_off] = (val >> 8) & 0xff;\n" + "+\t\tdata[off - init_off + 1] = val & 0xff;\n" + "+\t\toff += 2;\n" + "+\t\tsize -= 2;\n" "+\t}\n" "+\n" "+\tif (size > 0) {\n" "+\t\tu8 val;\n" " \t\trio_read_config_8(dev, off, &val);\n" - "-\t\tbuf[off - init_off] =3D val;\n" - "+\t\tdata[off - init_off] =3D val;\n" + "-\t\tbuf[off - init_off] = val;\n" + "+\t\tdata[off - init_off] = val;\n" " \t\toff++;\n" " \t\t--size;\n" " \t}\n" "@@ -126,6 +144,7 @@ rio_write_config(struct kobject *kobj, c\n" " \t to_rio_dev(container_of(kobj, struct device, kobj));\n" - " \tunsigned int size =3D count;\n" - " \tloff_t init_off =3D off;\n" - "+\tu8 *data =3D (u8 *) buf;\n" - "=20\n" + " \tunsigned int size = count;\n" + " \tloff_t init_off = off;\n" + "+\tu8 *data = (u8 *) buf;\n" + " \n" " \tif (off > 0x200000)\n" " \t\treturn 0;\n" "@@ -134,25 +153,40 @@ rio_write_config(struct kobject *kobj, c\n" - " \t\tcount =3D size;\n" + " \t\tcount = size;\n" " \t}\n" - "=20\n" + " \n" "-\twhile (off & 3) {\n" "-\t\trio_write_config_8(dev, off, buf[off - init_off]);\n" "+\tif ((off & 1) && size) {\n" "+\t\trio_write_config_8(dev, off, data[off - init_off]);\n" " \t\toff++;\n" - "-\t\tif (--size =3D=3D 0)\n" + "-\t\tif (--size == 0)\n" "-\t\t\tbreak;\n" "+\t\tsize--;\n" "+\t}\n" "+\n" "+\tif ((off & 3) && (size > 2)) {\n" - "+\t\tu16 val =3D data[off - init_off + 1];\n" - "+\t\tval |=3D (u16) data[off - init_off] << 8;\n" + "+\t\tu16 val = data[off - init_off + 1];\n" + "+\t\tval |= (u16) data[off - init_off] << 8;\n" "+\t\trio_write_config_16(dev, off, val);\n" - "+\t\toff +=3D 2;\n" - "+\t\tsize -=3D 2;\n" + "+\t\toff += 2;\n" + "+\t\tsize -= 2;\n" " \t}\n" - "=20\n" + " \n" " \twhile (size > 3) {\n" - "-\t\tunsigned int val =3D buf[off - init_off + 3];\n" - "-\t\tval |=3D (unsigned int)buf[off - init_off + 2] << 8;\n" - "-\t\tval |=3D (unsigned int)buf[off - init_off + 1] << 16;\n" - "-\t\tval |=3D (unsigned int)buf[off - init_off] << 24;\n" - "+\t\tu32 val =3D data[off - init_off + 3];\n" - "+\t\tval |=3D (u32) data[off - init_off + 2] << 8;\n" - "+\t\tval |=3D (u32) data[off - init_off + 1] << 16;\n" - "+\t\tval |=3D (u32) data[off - init_off] << 24;\n" + "-\t\tunsigned int val = buf[off - init_off + 3];\n" + "-\t\tval |= (unsigned int)buf[off - init_off + 2] << 8;\n" + "-\t\tval |= (unsigned int)buf[off - init_off + 1] << 16;\n" + "-\t\tval |= (unsigned int)buf[off - init_off] << 24;\n" + "+\t\tu32 val = data[off - init_off + 3];\n" + "+\t\tval |= (u32) data[off - init_off + 2] << 8;\n" + "+\t\tval |= (u32) data[off - init_off + 1] << 16;\n" + "+\t\tval |= (u32) data[off - init_off] << 24;\n" " \t\trio_write_config_32(dev, off, val);\n" - " \t\toff +=3D 4;\n" - " \t\tsize -=3D 4;\n" + " \t\toff += 4;\n" + " \t\tsize -= 4;\n" " \t}\n" - "=20\n" + " \n" "-\twhile (size > 0) {\n" "-\t\trio_write_config_8(dev, off, buf[off - init_off]);\n" - "+\tif (size >=3D 2) {\n" - "+\t\tu16 val =3D data[off - init_off + 1];\n" - "+\t\tval |=3D (u16) data[off - init_off] << 8;\n" + "+\tif (size >= 2) {\n" + "+\t\tu16 val = data[off - init_off + 1];\n" + "+\t\tval |= (u16) data[off - init_off] << 8;\n" "+\t\trio_write_config_16(dev, off, val);\n" - "+\t\toff +=3D 2;\n" - "+\t\tsize -=3D 2;\n" + "+\t\toff += 2;\n" + "+\t\tsize -= 2;\n" "+\t}\n" "+\n" "+\tif (size) {\n" @@ -160,4 +157,4 @@ " \t\t--size;\n" " \t}" -36b3c0678a7d8d0f797f1cf5a2cf526f3abe98b2515097346e270f1ef5ab3885 +cbbd35432d54fb88ebb609b77b7b8b74219c3a62c706460716d18944be176fee
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.