[PATCH] powerpc/cell: set no_llseek in spufs_cntl_fops

2017-05-06 Thread Geliang Tang
In spufs_cntl_fops, since we use nonseekable_open() to open, we
should use no_llseek() to seek, not generic_file_llseek().

Signed-off-by: Geliang Tang <geliangt...@gmail.com>
---
 arch/powerpc/platforms/cell/spufs/file.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/platforms/cell/spufs/file.c 
b/arch/powerpc/platforms/cell/spufs/file.c
index ae2f740..738ef8d 100644
--- a/arch/powerpc/platforms/cell/spufs/file.c
+++ b/arch/powerpc/platforms/cell/spufs/file.c
@@ -456,7 +456,7 @@ static const struct file_operations spufs_cntl_fops = {
.release = spufs_cntl_release,
.read = simple_attr_read,
.write = simple_attr_write,
-   .llseek = generic_file_llseek,
+   .llseek = no_llseek,
.mmap = spufs_cntl_mmap,
 };
 
-- 
2.9.3



[PATCH] powerpc/pseries: use memdup_user_nul

2017-04-28 Thread Geliang Tang
Use memdup_user_nul() helper instead of open-coding to simplify the code.

Signed-off-by: Geliang Tang <geliangt...@gmail.com>
---
 arch/powerpc/platforms/pseries/reconfig.c | 13 +++--
 1 file changed, 3 insertions(+), 10 deletions(-)

diff --git a/arch/powerpc/platforms/pseries/reconfig.c 
b/arch/powerpc/platforms/pseries/reconfig.c
index e5bf1e8..431f513 100644
--- a/arch/powerpc/platforms/pseries/reconfig.c
+++ b/arch/powerpc/platforms/pseries/reconfig.c
@@ -367,16 +367,9 @@ static ssize_t ofdt_write(struct file *file, const char 
__user *buf, size_t coun
char *kbuf;
char *tmp;
 
-   if (!(kbuf = kmalloc(count + 1, GFP_KERNEL))) {
-   rv = -ENOMEM;
-   goto out;
-   }
-   if (copy_from_user(kbuf, buf, count)) {
-   rv = -EFAULT;
-   goto out;
-   }
-
-   kbuf[count] = '\0';
+   kbuf = memdup_user_nul(buf, count);
+   if (IS_ERR(kbuf))
+   return PTR_ERR(kbuf);
 
tmp = strchr(kbuf, ' ');
if (!tmp) {
-- 
2.9.3



[PATCH] powerpc/powernv: use memdup_user

2017-04-28 Thread Geliang Tang
Use memdup_user() helper instead of open-coding to simplify the code.

Signed-off-by: Geliang Tang <geliangt...@gmail.com>
---
 arch/powerpc/platforms/powernv/opal-prd.c | 13 +++--
 1 file changed, 3 insertions(+), 10 deletions(-)

diff --git a/arch/powerpc/platforms/powernv/opal-prd.c 
b/arch/powerpc/platforms/powernv/opal-prd.c
index 2d6ee1c..de4dd09 100644
--- a/arch/powerpc/platforms/powernv/opal-prd.c
+++ b/arch/powerpc/platforms/powernv/opal-prd.c
@@ -241,15 +241,9 @@ static ssize_t opal_prd_write(struct file *file, const 
char __user *buf,
 
size = be16_to_cpu(hdr.size);
 
-   msg = kmalloc(size, GFP_KERNEL);
-   if (!msg)
-   return -ENOMEM;
-
-   rc = copy_from_user(msg, buf, size);
-   if (rc) {
-   size = -EFAULT;
-   goto out_free;
-   }
+   msg = memdup_user(buf, size);
+   if (IS_ERR(msg))
+   return PTR_ERR(msg);
 
rc = opal_prd_msg(msg);
if (rc) {
@@ -257,7 +251,6 @@ static ssize_t opal_prd_write(struct file *file, const char 
__user *buf,
size = -EIO;
}
 
-out_free:
kfree(msg);
 
return size;
-- 
2.9.3



[PATCH] powerpc/nvram: use memdup_user

2017-04-28 Thread Geliang Tang
Use memdup_user() helper instead of open-coding to simplify the code.

Signed-off-by: Geliang Tang <geliangt...@gmail.com>
---
 arch/powerpc/kernel/nvram_64.c | 14 +-
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/arch/powerpc/kernel/nvram_64.c b/arch/powerpc/kernel/nvram_64.c
index eae61b0..496d639 100644
--- a/arch/powerpc/kernel/nvram_64.c
+++ b/arch/powerpc/kernel/nvram_64.c
@@ -792,21 +792,17 @@ static ssize_t dev_nvram_write(struct file *file, const 
char __user *buf,
count = min_t(size_t, count, size - *ppos);
count = min(count, PAGE_SIZE);
 
-   ret = -ENOMEM;
-   tmp = kmalloc(count, GFP_KERNEL);
-   if (!tmp)
-   goto out;
-
-   ret = -EFAULT;
-   if (copy_from_user(tmp, buf, count))
+   tmp = memdup_user(buf, count);
+   if (IS_ERR(tmp)) {
+   ret = PTR_ERR(tmp);
goto out;
+   }
 
ret = ppc_md.nvram_write(tmp, count, ppos);
 
-out:
kfree(tmp);
+out:
return ret;
-
 }
 
 static long dev_nvram_ioctl(struct file *file, unsigned int cmd,
-- 
2.9.3



[PATCH] powerpc/perf/24x7: use rb_entry

2016-12-20 Thread Geliang Tang
To make the code clearer, use rb_entry() instead of container_of() to
deal with rbtree.

Signed-off-by: Geliang Tang <geliangt...@gmail.com>
---
 arch/powerpc/perf/hv-24x7.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/perf/hv-24x7.c b/arch/powerpc/perf/hv-24x7.c
index 7b2ca16..51bd3b4 100644
--- a/arch/powerpc/perf/hv-24x7.c
+++ b/arch/powerpc/perf/hv-24x7.c
@@ -547,7 +547,7 @@ static int event_uniq_add(struct rb_root *root, const char 
*name, int nl,
struct event_uniq *it;
int result;
 
-   it = container_of(*new, struct event_uniq, node);
+   it = rb_entry(*new, struct event_uniq, node);
result = ev_uniq_ord(name, nl, domain, it->name, it->nl,
it->domain);
 
-- 
2.9.3



[PATCH] ibmvnic: drop duplicate header seq_file.h

2016-11-24 Thread Geliang Tang
Drop duplicate header seq_file.h from ibmvnic.c.

Signed-off-by: Geliang Tang <geliangt...@gmail.com>
---
 drivers/net/ethernet/ibm/ibmvnic.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/net/ethernet/ibm/ibmvnic.c 
b/drivers/net/ethernet/ibm/ibmvnic.c
index 1e486d1..c125966 100644
--- a/drivers/net/ethernet/ibm/ibmvnic.c
+++ b/drivers/net/ethernet/ibm/ibmvnic.c
@@ -74,7 +74,6 @@
 #include 
 #include 
 #include 
-#include 
 #include 
 
 #include "ibmvnic.h"
-- 
2.9.3



[PATCH] cxl: drop duplicate header sched.h

2016-11-23 Thread Geliang Tang
Drop duplicate header sched.h from native.c.

Signed-off-by: Geliang Tang <geliangt...@gmail.com>
---
 drivers/misc/cxl/native.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/misc/cxl/native.c b/drivers/misc/cxl/native.c
index c336350..aeefa53 100644
--- a/drivers/misc/cxl/native.c
+++ b/drivers/misc/cxl/native.c
@@ -10,7 +10,6 @@
 #include 
 #include 
 #include 
-#include 
 #include 
 #include 
 #include 
-- 
2.9.3



[PATCH] soc/fsl/qe: use builtin_platform_driver

2016-11-23 Thread Geliang Tang
Use builtin_platform_driver() helper to simplify the code.

Signed-off-by: Geliang Tang <geliangt...@gmail.com>
---
 drivers/soc/fsl/qe/qe.c | 6 +-
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/drivers/soc/fsl/qe/qe.c b/drivers/soc/fsl/qe/qe.c
index 2707a82..ade168f 100644
--- a/drivers/soc/fsl/qe/qe.c
+++ b/drivers/soc/fsl/qe/qe.c
@@ -717,9 +717,5 @@ static struct platform_driver qe_driver = {
.resume = qe_resume,
 };
 
-static int __init qe_drv_init(void)
-{
-   return platform_driver_register(_driver);
-}
-device_initcall(qe_drv_init);
+builtin_platform_driver(qe_driver);
 #endif /* defined(CONFIG_SUSPEND) && defined(CONFIG_PPC_85xx) */
-- 
2.9.3



[PATCH] powerpc: sysdev: use builtin_platform_driver

2016-11-23 Thread Geliang Tang
Use builtin_platform_driver() helper to simplify the code.

Signed-off-by: Geliang Tang <geliangt...@gmail.com>
---
 arch/powerpc/sysdev/fsl_pmc.c | 6 +-
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/arch/powerpc/sysdev/fsl_pmc.c b/arch/powerpc/sysdev/fsl_pmc.c
index 1d6fd7c..232225e 100644
--- a/arch/powerpc/sysdev/fsl_pmc.c
+++ b/arch/powerpc/sysdev/fsl_pmc.c
@@ -85,8 +85,4 @@ static struct platform_driver pmc_driver = {
.probe = pmc_probe,
 };
 
-static int __init pmc_init(void)
-{
-   return platform_driver_register(_driver);
-}
-device_initcall(pmc_init);
+builtin_platform_driver(pmc_driver);
-- 
2.9.3



[PATCH] powerpc: platforms: 83xx: use builtin_platform_driver

2016-11-23 Thread Geliang Tang
Use builtin_platform_driver() helper to simplify the code.

Signed-off-by: Geliang Tang <geliangt...@gmail.com>
---
 arch/powerpc/platforms/83xx/suspend.c | 6 +-
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/arch/powerpc/platforms/83xx/suspend.c 
b/arch/powerpc/platforms/83xx/suspend.c
index 24717d0..08f92f6 100644
--- a/arch/powerpc/platforms/83xx/suspend.c
+++ b/arch/powerpc/platforms/83xx/suspend.c
@@ -441,8 +441,4 @@ static struct platform_driver pmc_driver = {
.remove = pmc_remove
 };
 
-static int pmc_init(void)
-{
-   return platform_driver_register(_driver);
-}
-device_initcall(pmc_init);
+builtin_platform_driver(pmc_driver);
-- 
2.9.3



[PATCH] powerpc/eeh/of: use builtin_platform_driver

2016-11-23 Thread Geliang Tang
Use builtin_platform_driver() helper to simplify the code.

Signed-off-by: Geliang Tang <geliangt...@gmail.com>
---
 arch/powerpc/kernel/of_platform.c | 7 +--
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/arch/powerpc/kernel/of_platform.c 
b/arch/powerpc/kernel/of_platform.c
index b60a67d..34aeac5 100644
--- a/arch/powerpc/kernel/of_platform.c
+++ b/arch/powerpc/kernel/of_platform.c
@@ -114,11 +114,6 @@ static struct platform_driver of_pci_phb_driver = {
},
 };
 
-static __init int of_pci_phb_init(void)
-{
-   return platform_driver_register(_pci_phb_driver);
-}
-
-device_initcall(of_pci_phb_init);
+builtin_platform_driver(of_pci_phb_driver);
 
 #endif /* CONFIG_PPC_OF_PLATFORM_PCI */
-- 
2.9.3



[PATCH] KVM: PPC: drop duplicate header asm/iommu.h

2016-11-18 Thread Geliang Tang
Drop duplicate header asm/iommu.h from book3s_64_vio_hv.c.

Signed-off-by: Geliang Tang <geliangt...@gmail.com>
---
 arch/powerpc/kvm/book3s_64_vio_hv.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/arch/powerpc/kvm/book3s_64_vio_hv.c 
b/arch/powerpc/kvm/book3s_64_vio_hv.c
index d461c44..e4c4ea9 100644
--- a/arch/powerpc/kvm/book3s_64_vio_hv.c
+++ b/arch/powerpc/kvm/book3s_64_vio_hv.c
@@ -39,7 +39,6 @@
 #include 
 #include 
 #include 
-#include 
 
 #define TCES_PER_PAGE  (PAGE_SIZE / sizeof(u64))
 
-- 
2.9.3



[PATCH] crypto: nx - drop duplicate header types.h

2016-11-11 Thread Geliang Tang
Drop duplicate header types.h from nx.c.

Signed-off-by: Geliang Tang <geliangt...@gmail.com>
---
 drivers/crypto/nx/nx.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/crypto/nx/nx.c b/drivers/crypto/nx/nx.c
index 42f0f22..036057a 100644
--- a/drivers/crypto/nx/nx.c
+++ b/drivers/crypto/nx/nx.c
@@ -32,7 +32,6 @@
 #include 
 #include 
 #include 
-#include 
 #include 
 #include 
 
-- 
2.9.3



[PATCH] powerpc/nvram: remove unused pstore headers

2016-06-08 Thread Geliang Tang
Since the pstore code has moved away from nvram.c, remove unused
pstore headers pstore.h and kmsg_dump.h.

Signed-off-by: Geliang Tang <geliangt...@gmail.com>
---
 arch/powerpc/platforms/pseries/nvram.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/arch/powerpc/platforms/pseries/nvram.c 
b/arch/powerpc/platforms/pseries/nvram.c
index 9f818417..79aef8c 100644
--- a/arch/powerpc/platforms/pseries/nvram.c
+++ b/arch/powerpc/platforms/pseries/nvram.c
@@ -17,8 +17,6 @@
 #include 
 #include 
 #include 
-#include 
-#include 
 #include 
 #include 
 #include 
-- 
1.9.1

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

[PATCH 2/5] misc: cxl: use kobj_to_dev()

2016-01-13 Thread Geliang Tang
Use kobj_to_dev() instead of open-coding it.

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
 drivers/misc/cxl/sysfs.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/misc/cxl/sysfs.c b/drivers/misc/cxl/sysfs.c
index 02006f71..038af5d 100644
--- a/drivers/misc/cxl/sysfs.c
+++ b/drivers/misc/cxl/sysfs.c
@@ -386,8 +386,7 @@ static ssize_t afu_eb_read(struct file *filp, struct 
kobject *kobj,
   struct bin_attribute *bin_attr, char *buf,
   loff_t off, size_t count)
 {
-   struct cxl_afu *afu = to_cxl_afu(container_of(kobj,
- struct device, kobj));
+   struct cxl_afu *afu = to_cxl_afu(kobj_to_dev(kobj));
 
return cxl_afu_read_err_buffer(afu, buf, off, count);
 }
@@ -467,7 +466,7 @@ static ssize_t afu_read_config(struct file *filp, struct 
kobject *kobj,
   loff_t off, size_t count)
 {
struct afu_config_record *cr = to_cr(kobj);
-   struct cxl_afu *afu = to_cxl_afu(container_of(kobj->parent, struct 
device, kobj));
+   struct cxl_afu *afu = to_cxl_afu(kobj_to_dev(kobj->parent));
 
u64 i, j, val;
 
-- 
2.5.0


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

[PATCH] ASoC: twl6040, fsl: use to_platform_device

2015-12-23 Thread Geliang Tang
Use to_platform_device() instead of open-coding it.

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
 sound/soc/codecs/twl6040.c   | 3 +--
 sound/soc/fsl/mpc8610_hpcd.c | 3 +--
 sound/soc/fsl/p1022_ds.c | 3 +--
 sound/soc/fsl/p1022_rdk.c| 3 +--
 4 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/sound/soc/codecs/twl6040.c b/sound/soc/codecs/twl6040.c
index 4cad892..bc3de2e 100644
--- a/sound/soc/codecs/twl6040.c
+++ b/sound/soc/codecs/twl6040.c
@@ -1097,8 +1097,7 @@ static int twl6040_probe(struct snd_soc_codec *codec)
 {
struct twl6040_data *priv;
struct twl6040 *twl6040 = dev_get_drvdata(codec->dev->parent);
-   struct platform_device *pdev = container_of(codec->dev,
-  struct platform_device, dev);
+   struct platform_device *pdev = to_platform_device(codec->dev);
int ret = 0;
 
priv = devm_kzalloc(codec->dev, sizeof(*priv), GFP_KERNEL);
diff --git a/sound/soc/fsl/mpc8610_hpcd.c b/sound/soc/fsl/mpc8610_hpcd.c
index 6f236f1..ddf49f3 100644
--- a/sound/soc/fsl/mpc8610_hpcd.c
+++ b/sound/soc/fsl/mpc8610_hpcd.c
@@ -189,8 +189,7 @@ static int mpc8610_hpcd_probe(struct platform_device *pdev)
 {
struct device *dev = pdev->dev.parent;
/* ssi_pdev is the platform device for the SSI node that probed us */
-   struct platform_device *ssi_pdev =
-   container_of(dev, struct platform_device, dev);
+   struct platform_device *ssi_pdev = to_platform_device(dev);
struct device_node *np = ssi_pdev->dev.of_node;
struct device_node *codec_np = NULL;
struct mpc8610_hpcd_data *machine_data;
diff --git a/sound/soc/fsl/p1022_ds.c b/sound/soc/fsl/p1022_ds.c
index 747aab0..a1f780e 100644
--- a/sound/soc/fsl/p1022_ds.c
+++ b/sound/soc/fsl/p1022_ds.c
@@ -199,8 +199,7 @@ static int p1022_ds_probe(struct platform_device *pdev)
 {
struct device *dev = pdev->dev.parent;
/* ssi_pdev is the platform device for the SSI node that probed us */
-   struct platform_device *ssi_pdev =
-   container_of(dev, struct platform_device, dev);
+   struct platform_device *ssi_pdev = to_platform_device(dev);
struct device_node *np = ssi_pdev->dev.of_node;
struct device_node *codec_np = NULL;
struct machine_data *mdata;
diff --git a/sound/soc/fsl/p1022_rdk.c b/sound/soc/fsl/p1022_rdk.c
index 1dd49e5..d4d88a8 100644
--- a/sound/soc/fsl/p1022_rdk.c
+++ b/sound/soc/fsl/p1022_rdk.c
@@ -203,8 +203,7 @@ static int p1022_rdk_probe(struct platform_device *pdev)
 {
struct device *dev = pdev->dev.parent;
/* ssi_pdev is the platform device for the SSI node that probed us */
-   struct platform_device *ssi_pdev =
-   container_of(dev, struct platform_device, dev);
+   struct platform_device *ssi_pdev = to_platform_device(dev);
struct device_node *np = ssi_pdev->dev.of_node;
struct device_node *codec_np = NULL;
struct machine_data *mdata;
-- 
2.5.0


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

[PATCH 7/7] powerpc: fix a problematic usage of WARN()

2015-11-25 Thread Geliang Tang
WARN() takes a condition and a format string. The condition was
omitted. So I added it.

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
 arch/powerpc/kernel/setup_64.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
index 5c03a6a..726a9fb 100644
--- a/arch/powerpc/kernel/setup_64.c
+++ b/arch/powerpc/kernel/setup_64.c
@@ -127,7 +127,7 @@ static void setup_tlb_core_data(void)
!mmu_has_feature(MMU_FTR_USE_TLBRSRV) &&
book3e_htw_mode != PPC_HTW_E6500) {
/* Should we panic instead? */
-   WARN_ONCE("%s: unsupported MMU configuration -- expect 
problems\n",
+   WARN_ONCE(1, "%s: unsupported MMU configuration -- 
expect problems\n",
  __func__);
}
}
-- 
2.5.0


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev