Linux-Next discussions
 help / color / mirror / Atom feed
* Re: linux-next: build failure after merge of the pm tree
From: Mika Westerberg @ 2016-07-11  4:48 UTC (permalink / raw)
  To: Stephen Rothwell
  Cc: Rafael J. Wysocki, linux-next, linux-kernel, Octavian Purdila
In-Reply-To: <20160711114653.066355ae@canb.auug.org.au>

On Mon, Jul 11, 2016 at 11:46:53AM +1000, Stephen Rothwell wrote:
> Hi Rafael,
> 
> After merging the pm tree, today's linux-next build (x86_64 allmodconfig)
> failed like this:
> 
> ERROR: "configfs_unregister_subsystem" [samples/configfs/configfs_sample.ko] undefined!
> ERROR: "configfs_register_subsystem" [samples/configfs/configfs_sample.ko] undefined!
> ERROR: "config_group_init" [samples/configfs/configfs_sample.ko] undefined!
> ERROR: "config_item_init_type_name" [samples/configfs/configfs_sample.ko] undefined!
> ERROR: "config_group_init_type_name" [samples/configfs/configfs_sample.ko] undefined!
> ERROR: "configfs_undepend_item" [fs/ocfs2/cluster/ocfs2_nodemanager.ko] undefined!
> ERROR: "config_item_put" [fs/ocfs2/cluster/ocfs2_nodemanager.ko] undefined!
> ERROR: "config_item_init_type_name" [fs/ocfs2/cluster/ocfs2_nodemanager.ko] undefined!
> 
> ... and many more ...
> 
> Presumably (maybe?) caused by commit
> 
>   0bf54fcd9504 ("ACPI: add support for configfs")
> 
> though it is not obvious why this should be a problem.

Looks like it is the module name (configfs.o) that confuses modpost or
linker. The below patch fixes it for me.

From: Mika Westerberg <mika.westerberg@linux.intel.com>
Subject: [PATCH] ACPI: Rename configfs.c to acpi_configfs.c to prevent link error

If we compile ACPI configfs.c as module it will confuse the linker as it
hides symbols from the actual configfs:

Kernel: arch/x86/boot/bzImage is ready  (#1236)
  MODPOST 5739 modules
ERROR: "configfs_unregister_subsystem" [samples/configfs/configfs_sample.ko] undefined!
ERROR: "configfs_register_subsystem" [samples/configfs/configfs_sample.ko] undefined!
ERROR: "config_group_init" [samples/configfs/configfs_sample.ko] undefined!
ERROR: "config_item_init_type_name" [samples/configfs/configfs_sample.ko] undefined!
ERROR: "config_group_init_type_name" [samples/configfs/configfs_sample.ko] undefined!
ERROR: "configfs_undepend_item" [fs/ocfs2/cluster/ocfs2_nodemanager.ko] undefined!
...

Prevent these by renaming the file to acpi_configfs.c instead.

Reported-by: Scott Lawson <scott.lawson@intel.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
---
 drivers/acpi/Makefile                        | 2 +-
 drivers/acpi/{configfs.c => acpi_configfs.c} | 0
 2 files changed, 1 insertion(+), 1 deletion(-)
 rename drivers/acpi/{configfs.c => acpi_configfs.c} (100%)

diff --git a/drivers/acpi/Makefile b/drivers/acpi/Makefile
index 1dc2173ad8d0..f72a83df1cf3 100644
--- a/drivers/acpi/Makefile
+++ b/drivers/acpi/Makefile
@@ -99,6 +99,6 @@ obj-$(CONFIG_ACPI_EXTLOG)	+= acpi_extlog.o
 obj-$(CONFIG_PMIC_OPREGION)	+= pmic/intel_pmic.o
 obj-$(CONFIG_CRC_PMIC_OPREGION) += pmic/intel_pmic_crc.o
 obj-$(CONFIG_XPOWER_PMIC_OPREGION) += pmic/intel_pmic_xpower.o
-obj-$(CONFIG_ACPI_CONFIGFS)	+= configfs.o
+obj-$(CONFIG_ACPI_CONFIGFS)	+= acpi_configfs.o
 
 video-objs			+= acpi_video.o video_detect.o
diff --git a/drivers/acpi/configfs.c b/drivers/acpi/acpi_configfs.c
similarity index 100%
rename from drivers/acpi/configfs.c
rename to drivers/acpi/acpi_configfs.c
-- 
2.8.1

^ permalink raw reply related

* linux-next: build failure after merge of the drm-msm tree
From: Stephen Rothwell @ 2016-07-11  3:20 UTC (permalink / raw)
  To: Rob Clark, Mark Brown, Liam Girdwood
  Cc: linux-next, linux-kernel, Srinivas Kandagatla, Kuninori Morimoto,
	Dave Airlie

Hi Rob,

After merging the drm-msm tree, today's linux-next build (arm
multi_v7_defconfig) failed like this:

drivers/gpu/drm/msm/hdmi/hdmi.c:523:15: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
  .hw_params = msm_hdmi_audio_hw_params,
               ^
drivers/gpu/drm/msm/hdmi/hdmi.c:523:15: note: (near initialization for 'msm_hdmi_audio_codec_ops.hw_params')
drivers/gpu/drm/msm/hdmi/hdmi.c:524:20: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
  .audio_shutdown = msm_hdmi_audio_shutdown,
                    ^
drivers/gpu/drm/msm/hdmi/hdmi.c:524:20: note: (near initialization for 'msm_hdmi_audio_codec_ops.audio_shutdown')

Caused by commit

  bf714255fed7 ("drm: msm: Add ASoC generic hdmi audio codec support.")

interacting with commit

  efc9194bcff8 ("ASoC: hdmi-codec: callback function will be called with private data")

from the sound-asoc (and drm) trees.

I have added this merge fix patch for today (dave will need something
like this when he merges your tree):

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Mon, 11 Jul 2016 13:16:23 +1000
Subject: [PATCH] drm: msm: fix up for "ASoC: hdmi-codec: callback function
 will be called with private data"

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 drivers/gpu/drm/msm/hdmi/hdmi.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/msm/hdmi/hdmi.c b/drivers/gpu/drm/msm/hdmi/hdmi.c
index aada35547eca..33bf52c6b312 100644
--- a/drivers/gpu/drm/msm/hdmi/hdmi.c
+++ b/drivers/gpu/drm/msm/hdmi/hdmi.c
@@ -438,7 +438,7 @@ static int msm_hdmi_get_gpio(struct device_node *of_node, const char *name)
 /*
  * HDMI audio codec callbacks
  */
-static int msm_hdmi_audio_hw_params(struct device *dev,
+static int msm_hdmi_audio_hw_params(struct device *dev, void *data,
 				    struct hdmi_codec_daifmt *daifmt,
 				    struct hdmi_codec_params *params)
 {
@@ -512,7 +512,7 @@ static int msm_hdmi_audio_hw_params(struct device *dev,
 	return 0;
 }
 
-static void msm_hdmi_audio_shutdown(struct device *dev)
+static void msm_hdmi_audio_shutdown(struct device *dev, void *data)
 {
 	struct hdmi *hdmi = dev_get_drvdata(dev);
 
-- 
2.8.1

-- 
Cheers,
Stephen Rothwell

^ permalink raw reply related

* linux-next: manual merge of the drm tree with the jc_docs tree
From: Stephen Rothwell @ 2016-07-11  2:32 UTC (permalink / raw)
  To: Dave Airlie, Jonathan Corbet
  Cc: linux-next, linux-kernel, Jani Nikula, Daniel Vetter

Hi Dave,

Today's linux-next merge of the drm tree got a conflict in:

  Documentation/index.rst

between commit:

  17defc282fe6 ("Documentation: add meta-documentation for Sphinx and kernel-doc")

from the jc_docs tree and commit:

  cb597fcea5c2 ("Documentation/gpu: add new gpu.rst converted from DocBook gpu.tmpl")

from the drm tree.

I fixed it up (see below - I just put them in alphabetical order ...)
and can carry the fix as necessary. This is now fixed as far as
linux-next is concerned, but any non trivial conflicts should be
mentioned to your upstream maintainer when your tree is submitted for
merging.  You may also want to consider cooperating with the maintainer
of the conflicting tree to minimise any particularly complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc Documentation/index.rst
index ad07716c73f4,dacc77b43c29..000000000000
--- a/Documentation/index.rst
+++ b/Documentation/index.rst
@@@ -13,8 -13,7 +13,9 @@@ Contents
  .. toctree::
     :maxdepth: 2
  
+    gpu/index
 +   kernel-documentation
 +   media/media_uapi
  
  Indices and tables
  ==================

^ permalink raw reply

* linux-next: manual merge of the wireless-drivers-next tree with the net-next tree
From: Stephen Rothwell @ 2016-07-11  2:06 UTC (permalink / raw)
  To: Kalle Valo, linux-wireless
  Cc: linux-next, linux-kernel, Avraham Stern, Johannes Berg,
	Assaf Krauss, Luca Coelho

Hi all,

Today's linux-next merge of the wireless-drivers-next tree got a
conflict in:

  drivers/net/wireless/intel/iwlwifi/mvm/scan.c

between commit:

  7947d3e075cd ("mac80211: Add support for beacon report radio measurement")

from the net-next tree and commit:

  69e046423ad7 ("iwlwifi: mvm: change scan timeout to a delayed work")

from the wireless-drivers-next tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc drivers/net/wireless/intel/iwlwifi/mvm/scan.c
index 1cac10c5d818,fb25d9e41912..000000000000
--- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
@@@ -400,9 -396,10 +400,9 @@@ void iwl_mvm_rx_lmac_scan_complete_noti
  			       iwl_mvm_ebs_status_str(scan_notif->ebs_status));
  
  		mvm->scan_status &= ~IWL_MVM_SCAN_REGULAR;
 -		ieee80211_scan_completed(mvm->hw,
 -				scan_notif->status == IWL_SCAN_OFFLOAD_ABORTED);
 +		ieee80211_scan_completed(mvm->hw, &info);
  		iwl_mvm_unref(mvm, IWL_MVM_REF_SCAN);
- 		del_timer(&mvm->scan_timer);
+ 		cancel_delayed_work(&mvm->scan_timeout_dwork);
  	} else {
  		IWL_ERR(mvm,
  			"got scan complete notification but no scan is running\n");
@@@ -1433,13 -1432,9 +1435,13 @@@ void iwl_mvm_rx_umac_scan_complete_noti
  
  	/* if the scan is already stopping, we don't need to notify mac80211 */
  	if (mvm->scan_uid_status[uid] == IWL_MVM_SCAN_REGULAR) {
 -		ieee80211_scan_completed(mvm->hw, aborted);
 +		struct cfg80211_scan_info info = {
 +			.aborted = aborted,
 +		};
 +
 +		ieee80211_scan_completed(mvm->hw, &info);
  		iwl_mvm_unref(mvm, IWL_MVM_REF_SCAN);
- 		del_timer(&mvm->scan_timer);
+ 		cancel_delayed_work(&mvm->scan_timeout_dwork);
  	} else if (mvm->scan_uid_status[uid] == IWL_MVM_SCAN_SCHED) {
  		ieee80211_sched_scan_stopped(mvm->hw);
  		mvm->sched_scan_pass_all = SCHED_SCAN_PASS_ALL_DISABLED;
@@@ -1644,14 -1630,9 +1646,14 @@@ out
  		 * to release the scan reference here.
  		 */
  		iwl_mvm_unref(mvm, IWL_MVM_REF_SCAN);
- 		del_timer(&mvm->scan_timer);
+ 		cancel_delayed_work(&mvm->scan_timeout_dwork);
 -		if (notify)
 -			ieee80211_scan_completed(mvm->hw, true);
 +		if (notify) {
 +			struct cfg80211_scan_info info = {
 +				.aborted = true,
 +			};
 +
 +			ieee80211_scan_completed(mvm->hw, &info);
 +		}
  	} else if (notify) {
  		ieee80211_sched_scan_stopped(mvm->hw);
  		mvm->sched_scan_pass_all = SCHED_SCAN_PASS_ALL_DISABLED;

^ permalink raw reply

* linux-next: build failure after merge of the pm tree
From: Stephen Rothwell @ 2016-07-11  1:46 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: linux-next, linux-kernel, Octavian Purdila, Mika Westerberg

Hi Rafael,

After merging the pm tree, today's linux-next build (x86_64 allmodconfig)
failed like this:

ERROR: "configfs_unregister_subsystem" [samples/configfs/configfs_sample.ko] undefined!
ERROR: "configfs_register_subsystem" [samples/configfs/configfs_sample.ko] undefined!
ERROR: "config_group_init" [samples/configfs/configfs_sample.ko] undefined!
ERROR: "config_item_init_type_name" [samples/configfs/configfs_sample.ko] undefined!
ERROR: "config_group_init_type_name" [samples/configfs/configfs_sample.ko] undefined!
ERROR: "configfs_undepend_item" [fs/ocfs2/cluster/ocfs2_nodemanager.ko] undefined!
ERROR: "config_item_put" [fs/ocfs2/cluster/ocfs2_nodemanager.ko] undefined!
ERROR: "config_item_init_type_name" [fs/ocfs2/cluster/ocfs2_nodemanager.ko] undefined!

... and many more ...

Presumably (maybe?) caused by commit

  0bf54fcd9504 ("ACPI: add support for configfs")

though it is not obvious why this should be a problem.

I have used the version of the pm tree from next-20160708 for today.
-- 
Cheers,
Stephen Rothwell

^ permalink raw reply

* linux-next: manual merge of the arm64 tree with Linus' tree
From: Stephen Rothwell @ 2016-07-11  0:14 UTC (permalink / raw)
  To: Catalin Marinas
  Cc: linux-next, linux-kernel, James Morse, Will Deacon, Mark Rutland

Hi Catalin,

Today's linux-next merge of the arm64 tree got a conflict in:

  arch/arm64/mm/fault.c

between commit:

  e19a6ee2460b ("arm64: kernel: Save and restore UAO and addr_limit on exception entry")

from Linus' tree and commit:

  541ec870ef31 ("arm64: kill ESR_LNX_EXEC")

from the arm64 tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc arch/arm64/mm/fault.c
index b1166d1e5955,fc5a34a72c6d..000000000000
--- a/arch/arm64/mm/fault.c
+++ b/arch/arm64/mm/fault.c
@@@ -279,9 -282,8 +282,9 @@@ static int __kprobes do_page_fault(unsi
  		mm_flags |= FAULT_FLAG_WRITE;
  	}
  
- 	if (permission_fault(esr) && (addr < USER_DS)) {
+ 	if (is_permission_fault(esr) && (addr < USER_DS)) {
 -		if (get_fs() == KERNEL_DS)
 +		/* regs->orig_addr_limit may be 0 if we entered from EL0 */
 +		if (regs->orig_addr_limit == KERNEL_DS)
  			die("Accessing user space memory with fs=KERNEL_DS", regs, esr);
  
  		if (!search_exception_tables(regs->pc))

^ permalink raw reply

* Re: linux-next: Tree for Jul 8
From: Guenter Roeck @ 2016-07-09 21:24 UTC (permalink / raw)
  To: Stephen Rothwell; +Cc: linux-next, linux-kernel
In-Reply-To: <20160708180338.6863303a@canb.auug.org.au>

On Fri, Jul 08, 2016 at 06:03:38PM +1000, Stephen Rothwell wrote:
> Hi all,
> 
> Changes since 20160707:
> 
> New trees: netfilter and netfilter-next
> 
> The drm-msm tree gained a conflict against the arm tree.
> 
> The block tree gained conflicts against Linus' and the btrfs-kdave trees.
> 
> The userns tree gained a conflict against Linus' tree.
> 
> Non-merge commits (relative to Linus' tree): 7460
>  6931 files changed, 350754 insertions(+), 147233 deletions(-)
> 

Build results:
	total: 148 pass: 136 fail: 12
Failed builds:
	arc:defconfig
	arc:allnoconfig
	arc:tb10x_defconfig
	arc:axs103_defconfig
	arc:nsim_hs_smp_defconfig
	arc:vdk_hs38_smp_defconfig
	arm:allmodconfig
	arm64:allmodconfig
	hexagon:defconfig
	hexagon:allnoconfig
	mips:ath79_defconfig
	mips:malta_defconfig

Qemu test results:
	total: 107 pass: 95 fail: 12
Failed tests:
	arm64:smp:defconfig
	arm64:nosmp:defconfig
	mips:malta_defconfig:nosmp
	mips:malta_defconfig:smp
	mips64:malta_defconfig:nosmp
	mips64:malta_defconfig:smp
	mipsel:malta_defconfig:nosmp
	mipsel:malta_defconfig:smp
	mipsel64:malta_defconfig:nosmp
	mipsel64:malta_defconfig:smp
	xtensa:dc233c:ml605:generic_kc705_defconfig
	xtensa:dc233c:kc705:generic_kc705_defconfig

Details are available at http://kerneltests.org/builders.

Thanks,
Guenter

^ permalink raw reply

* RE: [PATCH v4] mwifiex: Reduce endian conversion for REG Host Commands
From: Amitkumar Karwar @ 2016-07-08 14:33 UTC (permalink / raw)
  To: Prasun Maiti
  Cc: Nishant Sarmukadam, Linux Wireless, Linux Next, Linux Kernel,
	Kalle Valo
In-Reply-To: <1467022402-23990-1-git-send-email-prasunmaiti87@gmail.com>

> From: Prasun Maiti [mailto:prasunmaiti87@gmail.com]
> Sent: Monday, June 27, 2016 3:43 PM
> To: Amitkumar Karwar
> Cc: Nishant Sarmukadam; Linux Wireless; Linux Next; Linux Kernel; Kalle
> Valo
> Subject: [PATCH v4] mwifiex: Reduce endian conversion for REG Host
> Commands
> 
> For multiple REG Host Commands (e.g HostCmd_CMD_802_11_EEPROM_ACCESS,
> HostCmd_CMD_MAC_REG_ACCESS etc.) "cpu_to_leX"-converted values are saved
> to driver. So, "leX_to_cpu" conversion is required too many times
> afterwards in driver.
> 
> This patch reduces the endian: conversion without saving "cpu_to_leX"
> converted values in driver. This will convert endianness in prepare
> command and command response path.
> 
> Signed-off-by: Prasun Maiti <prasunmaiti87@gmail.com>
> ---
> Changes in v3:
> 	- Fixed the following warnings:
> 	* sta_ioctl.c:1339:34: warning: comparison of distinct pointer
> types lacks a cast [enabled by default]
> 	* sta_cmdresp.c:821:6: warning: comparison of distinct pointer
> types lacks a cast [enabled by default]
> 
> Changes in v4:
> 	- Fixed the sparse compilation warnings:
> 	* warning: cast from restricted __le32
> 	* warning: cast from restricted __le16
> 
>  drivers/net/wireless/marvell/mwifiex/ioctl.h       | 10 +++---
>  drivers/net/wireless/marvell/mwifiex/sta_cmd.c     | 28 +++++++--------
> -
>  drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c | 37 +++++++++++----
> -------
>  drivers/net/wireless/marvell/mwifiex/sta_ioctl.c   | 21 ++++++------
>  4 files changed, 46 insertions(+), 50 deletions(-)
> 
> diff --git a/drivers/net/wireless/marvell/mwifiex/ioctl.h
> b/drivers/net/wireless/marvell/mwifiex/ioctl.h
> index a5a48c1..4ce9330 100644
> --- a/drivers/net/wireless/marvell/mwifiex/ioctl.h
> +++ b/drivers/net/wireless/marvell/mwifiex/ioctl.h
> @@ -341,16 +341,16 @@ enum {
>  };
> 
>  struct mwifiex_ds_reg_rw {
> -	__le32 type;
> -	__le32 offset;
> -	__le32 value;
> +	u32 type;
> +	u32 offset;
> +	u32 value;
>  };
> 
>  #define MAX_EEPROM_DATA 256
> 
>  struct mwifiex_ds_read_eeprom {
> -	__le16 offset;
> -	__le16 byte_count;
> +	u16 offset;
> +	u16 byte_count;
>  	u8 value[MAX_EEPROM_DATA];
>  };
> 
> diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
> b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
> index e436574..9df02ba 100644
> --- a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
> +++ b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
> @@ -1130,9 +1130,8 @@ static int mwifiex_cmd_reg_access(struct
> host_cmd_ds_command *cmd,
>  		cmd->size = cpu_to_le16(sizeof(*mac_reg) + S_DS_GEN);
>  		mac_reg = &cmd->params.mac_reg;
>  		mac_reg->action = cpu_to_le16(cmd_action);
> -		mac_reg->offset =
> -			cpu_to_le16((u16) le32_to_cpu(reg_rw->offset));
> -		mac_reg->value = reg_rw->value;
> +		mac_reg->offset = cpu_to_le16((u16) reg_rw->offset);
> +		mac_reg->value = cpu_to_le32(reg_rw->value);
>  		break;
>  	}
>  	case HostCmd_CMD_BBP_REG_ACCESS:
> @@ -1142,9 +1141,8 @@ static int mwifiex_cmd_reg_access(struct
> host_cmd_ds_command *cmd,
>  		cmd->size = cpu_to_le16(sizeof(*bbp_reg) + S_DS_GEN);
>  		bbp_reg = &cmd->params.bbp_reg;
>  		bbp_reg->action = cpu_to_le16(cmd_action);
> -		bbp_reg->offset =
> -			cpu_to_le16((u16) le32_to_cpu(reg_rw->offset));
> -		bbp_reg->value = (u8) le32_to_cpu(reg_rw->value);
> +		bbp_reg->offset = cpu_to_le16((u16) reg_rw->offset);
> +		bbp_reg->value = (u8) reg_rw->value;
>  		break;
>  	}
>  	case HostCmd_CMD_RF_REG_ACCESS:
> @@ -1154,8 +1152,8 @@ static int mwifiex_cmd_reg_access(struct
> host_cmd_ds_command *cmd,
>  		cmd->size = cpu_to_le16(sizeof(*rf_reg) + S_DS_GEN);
>  		rf_reg = &cmd->params.rf_reg;
>  		rf_reg->action = cpu_to_le16(cmd_action);
> -		rf_reg->offset = cpu_to_le16((u16) le32_to_cpu(reg_rw-
> >offset));
> -		rf_reg->value = (u8) le32_to_cpu(reg_rw->value);
> +		rf_reg->offset = cpu_to_le16((u16) reg_rw->offset);
> +		rf_reg->value = (u8) reg_rw->value;
>  		break;
>  	}
>  	case HostCmd_CMD_PMIC_REG_ACCESS:
> @@ -1165,9 +1163,8 @@ static int mwifiex_cmd_reg_access(struct
> host_cmd_ds_command *cmd,
>  		cmd->size = cpu_to_le16(sizeof(*pmic_reg) + S_DS_GEN);
>  		pmic_reg = &cmd->params.pmic_reg;
>  		pmic_reg->action = cpu_to_le16(cmd_action);
> -		pmic_reg->offset =
> -				cpu_to_le16((u16) le32_to_cpu(reg_rw->offset));
> -		pmic_reg->value = (u8) le32_to_cpu(reg_rw->value);
> +		pmic_reg->offset = cpu_to_le16((u16) reg_rw->offset);
> +		pmic_reg->value = (u8) reg_rw->value;
>  		break;
>  	}
>  	case HostCmd_CMD_CAU_REG_ACCESS:
> @@ -1177,9 +1174,8 @@ static int mwifiex_cmd_reg_access(struct
> host_cmd_ds_command *cmd,
>  		cmd->size = cpu_to_le16(sizeof(*cau_reg) + S_DS_GEN);
>  		cau_reg = &cmd->params.rf_reg;
>  		cau_reg->action = cpu_to_le16(cmd_action);
> -		cau_reg->offset =
> -				cpu_to_le16((u16) le32_to_cpu(reg_rw->offset));
> -		cau_reg->value = (u8) le32_to_cpu(reg_rw->value);
> +		cau_reg->offset = cpu_to_le16((u16) reg_rw->offset);
> +		cau_reg->value = (u8) reg_rw->value;
>  		break;
>  	}
>  	case HostCmd_CMD_802_11_EEPROM_ACCESS:
> @@ -1190,8 +1186,8 @@ static int mwifiex_cmd_reg_access(struct
> host_cmd_ds_command *cmd,
> 
>  		cmd->size = cpu_to_le16(sizeof(*cmd_eeprom) + S_DS_GEN);
>  		cmd_eeprom->action = cpu_to_le16(cmd_action);
> -		cmd_eeprom->offset = rd_eeprom->offset;
> -		cmd_eeprom->byte_count = rd_eeprom->byte_count;
> +		cmd_eeprom->offset = cpu_to_le16(rd_eeprom->offset);
> +		cmd_eeprom->byte_count = cpu_to_le16(rd_eeprom->byte_count);
>  		cmd_eeprom->value = 0;
>  		break;
>  	}
> diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
> b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
> index d18c797..1832511 100644
> --- a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
> +++ b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
> @@ -781,45 +781,44 @@ static int mwifiex_ret_reg_access(u16 type, struct
> host_cmd_ds_command *resp,
>  	switch (type) {
>  	case HostCmd_CMD_MAC_REG_ACCESS:
>  		r.mac = &resp->params.mac_reg;
> -		reg_rw->offset = cpu_to_le32((u32) le16_to_cpu(r.mac-
> >offset));
> -		reg_rw->value = r.mac->value;
> +		reg_rw->offset = (u32) le16_to_cpu(r.mac->offset);
> +		reg_rw->value = le32_to_cpu(r.mac->value);
>  		break;
>  	case HostCmd_CMD_BBP_REG_ACCESS:
>  		r.bbp = &resp->params.bbp_reg;
> -		reg_rw->offset = cpu_to_le32((u32) le16_to_cpu(r.bbp-
> >offset));
> -		reg_rw->value = cpu_to_le32((u32) r.bbp->value);
> +		reg_rw->offset = (u32) le16_to_cpu(r.bbp->offset);
> +		reg_rw->value = (u32) r.bbp->value;
>  		break;
> 
>  	case HostCmd_CMD_RF_REG_ACCESS:
>  		r.rf = &resp->params.rf_reg;
> -		reg_rw->offset = cpu_to_le32((u32) le16_to_cpu(r.rf-
> >offset));
> -		reg_rw->value = cpu_to_le32((u32) r.bbp->value);
> +		reg_rw->offset = (u32) le16_to_cpu(r.rf->offset);
> +		reg_rw->value = (u32) r.bbp->value;
>  		break;
>  	case HostCmd_CMD_PMIC_REG_ACCESS:
>  		r.pmic = &resp->params.pmic_reg;
> -		reg_rw->offset = cpu_to_le32((u32) le16_to_cpu(r.pmic-
> >offset));
> -		reg_rw->value = cpu_to_le32((u32) r.pmic->value);
> +		reg_rw->offset = (u32) le16_to_cpu(r.pmic->offset);
> +		reg_rw->value = (u32) r.pmic->value;
>  		break;
>  	case HostCmd_CMD_CAU_REG_ACCESS:
>  		r.rf = &resp->params.rf_reg;
> -		reg_rw->offset = cpu_to_le32((u32) le16_to_cpu(r.rf-
> >offset));
> -		reg_rw->value = cpu_to_le32((u32) r.rf->value);
> +		reg_rw->offset = (u32) le16_to_cpu(r.rf->offset);
> +		reg_rw->value = (u32) r.rf->value;
>  		break;
>  	case HostCmd_CMD_802_11_EEPROM_ACCESS:
>  		r.eeprom = &resp->params.eeprom;
> -		pr_debug("info: EEPROM read len=%x\n", r.eeprom-
> >byte_count);
> -		if (le16_to_cpu(eeprom->byte_count) <
> -		    le16_to_cpu(r.eeprom->byte_count)) {
> -			eeprom->byte_count = cpu_to_le16(0);
> +		pr_debug("info: EEPROM read len=%x\n",
> +				le16_to_cpu(r.eeprom->byte_count));
> +		if (eeprom->byte_count < le16_to_cpu(r.eeprom->byte_count))
> {
> +			eeprom->byte_count = 0;
>  			pr_debug("info: EEPROM read length is too big\n");
>  			return -1;
>  		}
> -		eeprom->offset = r.eeprom->offset;
> -		eeprom->byte_count = r.eeprom->byte_count;
> -		if (le16_to_cpu(eeprom->byte_count) > 0)
> +		eeprom->offset = le16_to_cpu(r.eeprom->offset);
> +		eeprom->byte_count = le16_to_cpu(r.eeprom->byte_count);
> +		if (eeprom->byte_count > 0)
>  			memcpy(&eeprom->value, &r.eeprom->value,
> -			       le16_to_cpu(r.eeprom->byte_count));
> -
> +			       min((u16)MAX_EEPROM_DATA, eeprom->byte_count));
>  		break;
>  	default:
>  		return -1;
> diff --git a/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
> b/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
> index 8e08626..6dab5ca 100644
> --- a/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
> +++ b/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
> @@ -1247,7 +1247,7 @@ static int mwifiex_reg_mem_ioctl_reg_rw(struct
> mwifiex_private *priv,  {
>  	u16 cmd_no;
> 
> -	switch (le32_to_cpu(reg_rw->type)) {
> +	switch (reg_rw->type) {
>  	case MWIFIEX_REG_MAC:
>  		cmd_no = HostCmd_CMD_MAC_REG_ACCESS;
>  		break;
> @@ -1282,9 +1282,9 @@ mwifiex_reg_write(struct mwifiex_private *priv,
> u32 reg_type,  {
>  	struct mwifiex_ds_reg_rw reg_rw;
> 
> -	reg_rw.type = cpu_to_le32(reg_type);
> -	reg_rw.offset = cpu_to_le32(reg_offset);
> -	reg_rw.value = cpu_to_le32(reg_value);
> +	reg_rw.type = reg_type;
> +	reg_rw.offset = reg_offset;
> +	reg_rw.value = reg_value;
> 
>  	return mwifiex_reg_mem_ioctl_reg_rw(priv, &reg_rw,
> HostCmd_ACT_GEN_SET);  } @@ -1302,14 +1302,14 @@ mwifiex_reg_read(struct
> mwifiex_private *priv, u32 reg_type,
>  	int ret;
>  	struct mwifiex_ds_reg_rw reg_rw;
> 
> -	reg_rw.type = cpu_to_le32(reg_type);
> -	reg_rw.offset = cpu_to_le32(reg_offset);
> +	reg_rw.type = reg_type;
> +	reg_rw.offset = reg_offset;
>  	ret = mwifiex_reg_mem_ioctl_reg_rw(priv, &reg_rw,
> HostCmd_ACT_GEN_GET);
> 
>  	if (ret)
>  		goto done;
> 
> -	*value = le32_to_cpu(reg_rw.value);
> +	*value = reg_rw.value;
> 
>  done:
>  	return ret;
> @@ -1328,15 +1328,16 @@ mwifiex_eeprom_read(struct mwifiex_private
> *priv, u16 offset, u16 bytes,
>  	int ret;
>  	struct mwifiex_ds_read_eeprom rd_eeprom;
> 
> -	rd_eeprom.offset = cpu_to_le16((u16) offset);
> -	rd_eeprom.byte_count = cpu_to_le16((u16) bytes);
> +	rd_eeprom.offset =  offset;
> +	rd_eeprom.byte_count = bytes;
> 
>  	/* Send request to firmware */
>  	ret = mwifiex_send_cmd(priv, HostCmd_CMD_802_11_EEPROM_ACCESS,
>  			       HostCmd_ACT_GEN_GET, 0, &rd_eeprom, true);
> 
>  	if (!ret)
> -		memcpy(value, rd_eeprom.value, MAX_EEPROM_DATA);
> +		memcpy(value, rd_eeprom.value, min((u16)MAX_EEPROM_DATA,
> +		       rd_eeprom.byte_count));
>  	return ret;
>  }
> 

Acked-by: Amitkumar Karwar <akarwar@marvell.com>

Regards,
Amitkumar

^ permalink raw reply

* RE: [PATCH v4] mwifiex: Reduce endian conversion for REG Host Commands
From: Amitkumar Karwar @ 2016-07-08 14:32 UTC (permalink / raw)
  To: Kalle Valo
  Cc: Prasun Maiti, Nishant Sarmukadam, Linux Wireless, Linux Next,
	Linux Kernel
In-Reply-To: <877fcw1c51.fsf@kamboji.qca.qualcomm.com>

> From: linux-wireless-owner@vger.kernel.org [mailto:linux-wireless-
> owner@vger.kernel.org] On Behalf Of Kalle Valo
> Sent: Friday, July 08, 2016 7:10 PM
> To: Amitkumar Karwar
> Cc: Prasun Maiti; Nishant Sarmukadam; Linux Wireless; Linux Next; Linux
> Kernel
> Subject: Re: [PATCH v4] mwifiex: Reduce endian conversion for REG Host
> Commands
> 
> Amitkumar Karwar <akarwar@marvell.com> writes:
> 
> >> From: Prasun Maiti [mailto:prasunmaiti87@gmail.com]
> >> Sent: Monday, June 27, 2016 3:43 PM
> >> To: Amitkumar Karwar
> >> Cc: Nishant Sarmukadam; Linux Wireless; Linux Next; Linux Kernel;
> >> Kalle Valo
> >> Subject: [PATCH v4] mwifiex: Reduce endian conversion for REG Host
> >> Commands
> >>
> >> For multiple REG Host Commands (e.g HostCmd_CMD_802_11_EEPROM_ACCESS,
> >> HostCmd_CMD_MAC_REG_ACCESS etc.) "cpu_to_leX"-converted values are
> >> saved to driver. So, "leX_to_cpu" conversion is required too many
> >> times afterwards in driver.
> >>
> >> This patch reduces the endian: conversion without saving "cpu_to_leX"
> >> converted values in driver. This will convert endianness in prepare
> >> command and command response path.
> >>
> >> Signed-off-by: Prasun Maiti <prasunmaiti87@gmail.com>
> 
> [deleted almost 300 lines of unnecessary quotes]
> 
> > Any specific reason for dropping this patch?
> > I can see the status as "Deferred" on patchwork.
> 
> It's not dropped, "Deferred" means that the patch was postponed for some
> reason and I need to look at the patch more carefully. In this case I
> did it because I was hoping to see an Acked-by from you.

Thanks for clarification. I will ack the patch.

Regards,
Amitkumar

^ permalink raw reply

* Re: linux-next: manual merge of the block tree with Linus' tree
From: Konrad Rzeszutek Wilk @ 2016-07-08 14:11 UTC (permalink / raw)
  To: Stephen Rothwell
  Cc: Jens Axboe, linux-next, linux-kernel, Bob Liu, Mike Christie,
	Christoph Hellwig
In-Reply-To: <20160708141429.05d542cd@canb.auug.org.au>

On Fri, Jul 08, 2016 at 02:14:29PM +1000, Stephen Rothwell wrote:
> Hi all,
> 
> On Fri, 8 Jul 2016 13:07:50 +1000 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> >
> >  +			 * Get the bios in the request so we can re-queue them.
> >  +			 */
> > - 			if (shadow[j].request->cmd_flags &
> > - 					(REQ_FLUSH | REQ_FUA | REQ_DISCARD | REQ_SECURE)) {
> > ++			if (req_op(shadow[j].request) == REQ_OP_FLUSH ||
> > ++			    req_op(shadow[j].request) == REQ_OP_DISCARD ||
> > ++			    req_op(shadow[j].request) == REQ_OP_SECURE_ERASE ||
> > ++			    shadow[j].request->cmd_flags & REQ_FUA)) {
>                                                                   ^
> That is an extra ')' which I have now removed.

Stephen,

Thanks as always for doing this!
> 
> -- 
> Cheers,
> Stephen Rothwell

^ permalink raw reply

* Re: [v2] mwifiex: Fix endianness for event TLV type TLV_BTCOEX_WL_SCANTIME
From: Kalle Valo @ 2016-07-08 13:47 UTC (permalink / raw)
  To: Prasun Maiti
  Cc: Amitkumar Karwar, Nishant Sarmukadam, Linux Wireless, Linux Next,
	Linux Kernel
In-Reply-To: <1467275483-24091-1-git-send-email-prasunmaiti87-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

Prasun Maiti <prasunmaiti87-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> The two members min_scan_time and max_scan_time of structure
> "mwifiex_ie_types_btcoex_scan_time" are of two bytes each. The values
> are assigned directtly from firmware without endian conversion handling.
> So, wrong datas will get saved in big-endian systems.
> 
> This patch converts the values into cpu's byte order before assigning them
> into the local members.
> 
> Signed-off-by: Prasun Maiti <prasunmaiti87-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> Acked-by: Amitkumar Karwar <akarwar-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org>

Thanks, 1 patch applied to wireless-drivers-next.git:

c18b104dd249 mwifiex: Fix endianness for event TLV type TLV_BTCOEX_WL_SCANTIME

-- 
Sent by pwcli
https://patchwork.kernel.org/patch/9206939/

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* Re: [PATCH v4] mwifiex: Reduce endian conversion for REG Host Commands
From: Kalle Valo @ 2016-07-08 13:40 UTC (permalink / raw)
  To: Amitkumar Karwar
  Cc: Prasun Maiti, Nishant Sarmukadam, Linux Wireless, Linux Next,
	Linux Kernel
In-Reply-To: <8e1cc4765b4242a4a48f86abddbe40fc@SC-EXCH04.marvell.com>

Amitkumar Karwar <akarwar@marvell.com> writes:

>> From: Prasun Maiti [mailto:prasunmaiti87@gmail.com]
>> Sent: Monday, June 27, 2016 3:43 PM
>> To: Amitkumar Karwar
>> Cc: Nishant Sarmukadam; Linux Wireless; Linux Next; Linux Kernel; Kalle
>> Valo
>> Subject: [PATCH v4] mwifiex: Reduce endian conversion for REG Host
>> Commands
>> 
>> For multiple REG Host Commands (e.g HostCmd_CMD_802_11_EEPROM_ACCESS,
>> HostCmd_CMD_MAC_REG_ACCESS etc.) "cpu_to_leX"-converted values are saved
>> to driver. So, "leX_to_cpu" conversion is required too many times
>> afterwards in driver.
>> 
>> This patch reduces the endian: conversion without saving "cpu_to_leX"
>> converted values in driver. This will convert endianness in prepare
>> command and command response path.
>> 
>> Signed-off-by: Prasun Maiti <prasunmaiti87@gmail.com>

[deleted almost 300 lines of unnecessary quotes]

> Any specific reason for dropping this patch?
> I can see the status as "Deferred" on patchwork.

It's not dropped, "Deferred" means that the patch was postponed for some
reason and I need to look at the patch more carefully. In this case I
did it because I was hoping to see an Acked-by from you.

-- 
Kalle Valo

^ permalink raw reply

* RE: [PATCH v4] mwifiex: Reduce endian conversion for REG Host Commands
From: Amitkumar Karwar @ 2016-07-08 11:02 UTC (permalink / raw)
  To: Prasun Maiti
  Cc: Nishant Sarmukadam, Linux Wireless, Linux Next, Linux Kernel,
	Kalle Valo
In-Reply-To: <1467022402-23990-1-git-send-email-prasunmaiti87@gmail.com>

Hi Kalle,

> From: Prasun Maiti [mailto:prasunmaiti87@gmail.com]
> Sent: Monday, June 27, 2016 3:43 PM
> To: Amitkumar Karwar
> Cc: Nishant Sarmukadam; Linux Wireless; Linux Next; Linux Kernel; Kalle
> Valo
> Subject: [PATCH v4] mwifiex: Reduce endian conversion for REG Host
> Commands
> 
> For multiple REG Host Commands (e.g HostCmd_CMD_802_11_EEPROM_ACCESS,
> HostCmd_CMD_MAC_REG_ACCESS etc.) "cpu_to_leX"-converted values are saved
> to driver. So, "leX_to_cpu" conversion is required too many times
> afterwards in driver.
> 
> This patch reduces the endian: conversion without saving "cpu_to_leX"
> converted values in driver. This will convert endianness in prepare
> command and command response path.
> 
> Signed-off-by: Prasun Maiti <prasunmaiti87@gmail.com>
> ---
> Changes in v3:
> 	- Fixed the following warnings:
> 	* sta_ioctl.c:1339:34: warning: comparison of distinct pointer
> types lacks a cast [enabled by default]
> 	* sta_cmdresp.c:821:6: warning: comparison of distinct pointer
> types lacks a cast [enabled by default]
> 
> Changes in v4:
> 	- Fixed the sparse compilation warnings:
> 	* warning: cast from restricted __le32
> 	* warning: cast from restricted __le16
> 
>  drivers/net/wireless/marvell/mwifiex/ioctl.h       | 10 +++---
>  drivers/net/wireless/marvell/mwifiex/sta_cmd.c     | 28 +++++++--------
> -
>  drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c | 37 +++++++++++----
> -------
>  drivers/net/wireless/marvell/mwifiex/sta_ioctl.c   | 21 ++++++------
>  4 files changed, 46 insertions(+), 50 deletions(-)
> 
> diff --git a/drivers/net/wireless/marvell/mwifiex/ioctl.h
> b/drivers/net/wireless/marvell/mwifiex/ioctl.h
> index a5a48c1..4ce9330 100644
> --- a/drivers/net/wireless/marvell/mwifiex/ioctl.h
> +++ b/drivers/net/wireless/marvell/mwifiex/ioctl.h
> @@ -341,16 +341,16 @@ enum {
>  };
> 
>  struct mwifiex_ds_reg_rw {
> -	__le32 type;
> -	__le32 offset;
> -	__le32 value;
> +	u32 type;
> +	u32 offset;
> +	u32 value;
>  };
> 
>  #define MAX_EEPROM_DATA 256
> 
>  struct mwifiex_ds_read_eeprom {
> -	__le16 offset;
> -	__le16 byte_count;
> +	u16 offset;
> +	u16 byte_count;
>  	u8 value[MAX_EEPROM_DATA];
>  };
> 
> diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
> b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
> index e436574..9df02ba 100644
> --- a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
> +++ b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
> @@ -1130,9 +1130,8 @@ static int mwifiex_cmd_reg_access(struct
> host_cmd_ds_command *cmd,
>  		cmd->size = cpu_to_le16(sizeof(*mac_reg) + S_DS_GEN);
>  		mac_reg = &cmd->params.mac_reg;
>  		mac_reg->action = cpu_to_le16(cmd_action);
> -		mac_reg->offset =
> -			cpu_to_le16((u16) le32_to_cpu(reg_rw->offset));
> -		mac_reg->value = reg_rw->value;
> +		mac_reg->offset = cpu_to_le16((u16) reg_rw->offset);
> +		mac_reg->value = cpu_to_le32(reg_rw->value);
>  		break;
>  	}
>  	case HostCmd_CMD_BBP_REG_ACCESS:
> @@ -1142,9 +1141,8 @@ static int mwifiex_cmd_reg_access(struct
> host_cmd_ds_command *cmd,
>  		cmd->size = cpu_to_le16(sizeof(*bbp_reg) + S_DS_GEN);
>  		bbp_reg = &cmd->params.bbp_reg;
>  		bbp_reg->action = cpu_to_le16(cmd_action);
> -		bbp_reg->offset =
> -			cpu_to_le16((u16) le32_to_cpu(reg_rw->offset));
> -		bbp_reg->value = (u8) le32_to_cpu(reg_rw->value);
> +		bbp_reg->offset = cpu_to_le16((u16) reg_rw->offset);
> +		bbp_reg->value = (u8) reg_rw->value;
>  		break;
>  	}
>  	case HostCmd_CMD_RF_REG_ACCESS:
> @@ -1154,8 +1152,8 @@ static int mwifiex_cmd_reg_access(struct
> host_cmd_ds_command *cmd,
>  		cmd->size = cpu_to_le16(sizeof(*rf_reg) + S_DS_GEN);
>  		rf_reg = &cmd->params.rf_reg;
>  		rf_reg->action = cpu_to_le16(cmd_action);
> -		rf_reg->offset = cpu_to_le16((u16) le32_to_cpu(reg_rw-
> >offset));
> -		rf_reg->value = (u8) le32_to_cpu(reg_rw->value);
> +		rf_reg->offset = cpu_to_le16((u16) reg_rw->offset);
> +		rf_reg->value = (u8) reg_rw->value;
>  		break;
>  	}
>  	case HostCmd_CMD_PMIC_REG_ACCESS:
> @@ -1165,9 +1163,8 @@ static int mwifiex_cmd_reg_access(struct
> host_cmd_ds_command *cmd,
>  		cmd->size = cpu_to_le16(sizeof(*pmic_reg) + S_DS_GEN);
>  		pmic_reg = &cmd->params.pmic_reg;
>  		pmic_reg->action = cpu_to_le16(cmd_action);
> -		pmic_reg->offset =
> -				cpu_to_le16((u16) le32_to_cpu(reg_rw->offset));
> -		pmic_reg->value = (u8) le32_to_cpu(reg_rw->value);
> +		pmic_reg->offset = cpu_to_le16((u16) reg_rw->offset);
> +		pmic_reg->value = (u8) reg_rw->value;
>  		break;
>  	}
>  	case HostCmd_CMD_CAU_REG_ACCESS:
> @@ -1177,9 +1174,8 @@ static int mwifiex_cmd_reg_access(struct
> host_cmd_ds_command *cmd,
>  		cmd->size = cpu_to_le16(sizeof(*cau_reg) + S_DS_GEN);
>  		cau_reg = &cmd->params.rf_reg;
>  		cau_reg->action = cpu_to_le16(cmd_action);
> -		cau_reg->offset =
> -				cpu_to_le16((u16) le32_to_cpu(reg_rw->offset));
> -		cau_reg->value = (u8) le32_to_cpu(reg_rw->value);
> +		cau_reg->offset = cpu_to_le16((u16) reg_rw->offset);
> +		cau_reg->value = (u8) reg_rw->value;
>  		break;
>  	}
>  	case HostCmd_CMD_802_11_EEPROM_ACCESS:
> @@ -1190,8 +1186,8 @@ static int mwifiex_cmd_reg_access(struct
> host_cmd_ds_command *cmd,
> 
>  		cmd->size = cpu_to_le16(sizeof(*cmd_eeprom) + S_DS_GEN);
>  		cmd_eeprom->action = cpu_to_le16(cmd_action);
> -		cmd_eeprom->offset = rd_eeprom->offset;
> -		cmd_eeprom->byte_count = rd_eeprom->byte_count;
> +		cmd_eeprom->offset = cpu_to_le16(rd_eeprom->offset);
> +		cmd_eeprom->byte_count = cpu_to_le16(rd_eeprom->byte_count);
>  		cmd_eeprom->value = 0;
>  		break;
>  	}
> diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
> b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
> index d18c797..1832511 100644
> --- a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
> +++ b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
> @@ -781,45 +781,44 @@ static int mwifiex_ret_reg_access(u16 type, struct
> host_cmd_ds_command *resp,
>  	switch (type) {
>  	case HostCmd_CMD_MAC_REG_ACCESS:
>  		r.mac = &resp->params.mac_reg;
> -		reg_rw->offset = cpu_to_le32((u32) le16_to_cpu(r.mac-
> >offset));
> -		reg_rw->value = r.mac->value;
> +		reg_rw->offset = (u32) le16_to_cpu(r.mac->offset);
> +		reg_rw->value = le32_to_cpu(r.mac->value);
>  		break;
>  	case HostCmd_CMD_BBP_REG_ACCESS:
>  		r.bbp = &resp->params.bbp_reg;
> -		reg_rw->offset = cpu_to_le32((u32) le16_to_cpu(r.bbp-
> >offset));
> -		reg_rw->value = cpu_to_le32((u32) r.bbp->value);
> +		reg_rw->offset = (u32) le16_to_cpu(r.bbp->offset);
> +		reg_rw->value = (u32) r.bbp->value;
>  		break;
> 
>  	case HostCmd_CMD_RF_REG_ACCESS:
>  		r.rf = &resp->params.rf_reg;
> -		reg_rw->offset = cpu_to_le32((u32) le16_to_cpu(r.rf-
> >offset));
> -		reg_rw->value = cpu_to_le32((u32) r.bbp->value);
> +		reg_rw->offset = (u32) le16_to_cpu(r.rf->offset);
> +		reg_rw->value = (u32) r.bbp->value;
>  		break;
>  	case HostCmd_CMD_PMIC_REG_ACCESS:
>  		r.pmic = &resp->params.pmic_reg;
> -		reg_rw->offset = cpu_to_le32((u32) le16_to_cpu(r.pmic-
> >offset));
> -		reg_rw->value = cpu_to_le32((u32) r.pmic->value);
> +		reg_rw->offset = (u32) le16_to_cpu(r.pmic->offset);
> +		reg_rw->value = (u32) r.pmic->value;
>  		break;
>  	case HostCmd_CMD_CAU_REG_ACCESS:
>  		r.rf = &resp->params.rf_reg;
> -		reg_rw->offset = cpu_to_le32((u32) le16_to_cpu(r.rf-
> >offset));
> -		reg_rw->value = cpu_to_le32((u32) r.rf->value);
> +		reg_rw->offset = (u32) le16_to_cpu(r.rf->offset);
> +		reg_rw->value = (u32) r.rf->value;
>  		break;
>  	case HostCmd_CMD_802_11_EEPROM_ACCESS:
>  		r.eeprom = &resp->params.eeprom;
> -		pr_debug("info: EEPROM read len=%x\n", r.eeprom-
> >byte_count);
> -		if (le16_to_cpu(eeprom->byte_count) <
> -		    le16_to_cpu(r.eeprom->byte_count)) {
> -			eeprom->byte_count = cpu_to_le16(0);
> +		pr_debug("info: EEPROM read len=%x\n",
> +				le16_to_cpu(r.eeprom->byte_count));
> +		if (eeprom->byte_count < le16_to_cpu(r.eeprom->byte_count))
> {
> +			eeprom->byte_count = 0;
>  			pr_debug("info: EEPROM read length is too big\n");
>  			return -1;
>  		}
> -		eeprom->offset = r.eeprom->offset;
> -		eeprom->byte_count = r.eeprom->byte_count;
> -		if (le16_to_cpu(eeprom->byte_count) > 0)
> +		eeprom->offset = le16_to_cpu(r.eeprom->offset);
> +		eeprom->byte_count = le16_to_cpu(r.eeprom->byte_count);
> +		if (eeprom->byte_count > 0)
>  			memcpy(&eeprom->value, &r.eeprom->value,
> -			       le16_to_cpu(r.eeprom->byte_count));
> -
> +			       min((u16)MAX_EEPROM_DATA, eeprom->byte_count));
>  		break;
>  	default:
>  		return -1;
> diff --git a/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
> b/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
> index 8e08626..6dab5ca 100644
> --- a/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
> +++ b/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
> @@ -1247,7 +1247,7 @@ static int mwifiex_reg_mem_ioctl_reg_rw(struct
> mwifiex_private *priv,  {
>  	u16 cmd_no;
> 
> -	switch (le32_to_cpu(reg_rw->type)) {
> +	switch (reg_rw->type) {
>  	case MWIFIEX_REG_MAC:
>  		cmd_no = HostCmd_CMD_MAC_REG_ACCESS;
>  		break;
> @@ -1282,9 +1282,9 @@ mwifiex_reg_write(struct mwifiex_private *priv,
> u32 reg_type,  {
>  	struct mwifiex_ds_reg_rw reg_rw;
> 
> -	reg_rw.type = cpu_to_le32(reg_type);
> -	reg_rw.offset = cpu_to_le32(reg_offset);
> -	reg_rw.value = cpu_to_le32(reg_value);
> +	reg_rw.type = reg_type;
> +	reg_rw.offset = reg_offset;
> +	reg_rw.value = reg_value;
> 
>  	return mwifiex_reg_mem_ioctl_reg_rw(priv, &reg_rw,
> HostCmd_ACT_GEN_SET);  } @@ -1302,14 +1302,14 @@ mwifiex_reg_read(struct
> mwifiex_private *priv, u32 reg_type,
>  	int ret;
>  	struct mwifiex_ds_reg_rw reg_rw;
> 
> -	reg_rw.type = cpu_to_le32(reg_type);
> -	reg_rw.offset = cpu_to_le32(reg_offset);
> +	reg_rw.type = reg_type;
> +	reg_rw.offset = reg_offset;
>  	ret = mwifiex_reg_mem_ioctl_reg_rw(priv, &reg_rw,
> HostCmd_ACT_GEN_GET);
> 
>  	if (ret)
>  		goto done;
> 
> -	*value = le32_to_cpu(reg_rw.value);
> +	*value = reg_rw.value;
> 
>  done:
>  	return ret;
> @@ -1328,15 +1328,16 @@ mwifiex_eeprom_read(struct mwifiex_private
> *priv, u16 offset, u16 bytes,
>  	int ret;
>  	struct mwifiex_ds_read_eeprom rd_eeprom;
> 
> -	rd_eeprom.offset = cpu_to_le16((u16) offset);
> -	rd_eeprom.byte_count = cpu_to_le16((u16) bytes);
> +	rd_eeprom.offset =  offset;
> +	rd_eeprom.byte_count = bytes;
> 
>  	/* Send request to firmware */
>  	ret = mwifiex_send_cmd(priv, HostCmd_CMD_802_11_EEPROM_ACCESS,
>  			       HostCmd_ACT_GEN_GET, 0, &rd_eeprom, true);
> 
>  	if (!ret)
> -		memcpy(value, rd_eeprom.value, MAX_EEPROM_DATA);
> +		memcpy(value, rd_eeprom.value, min((u16)MAX_EEPROM_DATA,
> +		       rd_eeprom.byte_count));
>  	return ret;
>  }

Any specific reason for dropping this patch?
I can see the status as "Deferred" on patchwork.

Regards,
Amitkumar

^ permalink raw reply

* next-20160708 build: 3 failures 6 warnings (next-20160708)
From: Build bot for Mark Brown @ 2016-07-08 10:42 UTC (permalink / raw)
  To: kernel-build-reports, linaro-kernel, linux-next

Tree/Branch: next-20160708
Git describe: next-20160708
Commit: a379b037c5 Add linux-next specific files for 20160708

Build Time: 72 min 47 sec

Passed:    6 / 9   ( 66.67 %)
Failed:    3 / 9   ( 33.33 %)

Errors: 1
Warnings: 6
Section Mismatches: 0

Failed defconfigs:
	arm64-allmodconfig
	arm-allmodconfig

Errors:

	arm64-allmodconfig
../drivers/gpu/drm/rockchip/rockchip_drm_drv.c:17:27: fatal error: asm/dma-iommu.h: No such file or directory

-------------------------------------------------------------------------------
defconfigs with issues (other than build errors):
      6 warnings    0 mismatches  : arm-allmodconfig

-------------------------------------------------------------------------------

Errors summary: 1
	  1 ../drivers/gpu/drm/rockchip/rockchip_drm_drv.c:17:27: fatal error: asm/dma-iommu.h: No such file or directory

Warnings Summary: 6
	  1 ../drivers/tty/serial/8250/8250_fintek.c:34:0: warning: "IRQ_MODE" redefined
	  1 ../drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/polaris10_hwmgr.c:1824:4: warning: this decimal constant is unsigned only in ISO C90
	  1 ../drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/polaris10_hwmgr.c:1822:4: warning: this decimal constant is unsigned only in ISO C90
	  1 ../drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/polaris10_hwmgr.c:1817:4: warning: this decimal constant is unsigned only in ISO C90
	  1 ../arch/arm/mach-s3c64xx/common.h:28:2: warning: its scope is only this definition or declaration, which is probably not what you want
	  1 ../arch/arm/mach-s3c64xx/common.h:28:2: warning: 'struct device_node' declared inside parameter list



===============================================================================
Detailed per-defconfig build reports below:


-------------------------------------------------------------------------------
arm64-allmodconfig : FAIL, 1 errors, 0 warnings, 0 section mismatches

Errors:
	../drivers/gpu/drm/rockchip/rockchip_drm_drv.c:17:27: fatal error: asm/dma-iommu.h: No such file or directory

-------------------------------------------------------------------------------
arm-allmodconfig : FAIL, 0 errors, 6 warnings, 0 section mismatches

Warnings:
	../arch/arm/mach-s3c64xx/common.h:28:2: warning: 'struct device_node' declared inside parameter list
	../arch/arm/mach-s3c64xx/common.h:28:2: warning: its scope is only this definition or declaration, which is probably not what you want
	../drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/polaris10_hwmgr.c:1817:4: warning: this decimal constant is unsigned only in ISO C90
	../drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/polaris10_hwmgr.c:1822:4: warning: this decimal constant is unsigned only in ISO C90
	../drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/polaris10_hwmgr.c:1824:4: warning: this decimal constant is unsigned only in ISO C90
	../drivers/tty/serial/8250/8250_fintek.c:34:0: warning: "IRQ_MODE" redefined
-------------------------------------------------------------------------------

Passed with no errors, warnings or mismatches:

arm64-allnoconfig
arm-multi_v5_defconfig
arm-multi_v7_defconfig
x86_64-defconfig
arm-allnoconfig
x86_64-allnoconfig
arm64-defconfig

^ permalink raw reply

* linux-next: Tree for Jul 8
From: Stephen Rothwell @ 2016-07-08  8:03 UTC (permalink / raw)
  To: linux-next; +Cc: linux-kernel

Hi all,

Changes since 20160707:

New trees: netfilter and netfilter-next

The drm-msm tree gained a conflict against the arm tree.

The block tree gained conflicts against Linus' and the btrfs-kdave trees.

The userns tree gained a conflict against Linus' tree.

Non-merge commits (relative to Linus' tree): 7460
 6931 files changed, 350754 insertions(+), 147233 deletions(-)

----------------------------------------------------------------------------

I have created today's linux-next tree at
git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
(patches at http://www.kernel.org/pub/linux/kernel/next/ ).  If you
are tracking the linux-next tree using git, you should not use "git pull"
to do so as that will try to merge the new linux-next release with the
old one.  You should use "git fetch" and checkout or reset to the new
master.

You can see which trees have been included by looking in the Next/Trees
file in the source.  There are also quilt-import.log and merge.log
files in the Next directory.  Between each merge, the tree was built
with a ppc64_defconfig for powerpc and an allmodconfig (with
CONFIG_BUILD_DOCSRC=n) for x86_64, a multi_v7_defconfig for arm and a
native build of tools/perf. After the final fixups (if any), I do an
x86_64 modules_install followed by builds for x86_64 allnoconfig,
powerpc allnoconfig (32 and 64 bit), ppc44x_defconfig, allyesconfig
(this fails its final link) and pseries_le_defconfig and i386, sparc
and sparc64 defconfig.

Below is a summary of the state of the merge.

I am currently merging 238 trees (counting Linus' and 35 trees of patches
pending for Linus' tree).

Stats about the size of the tree over time can be seen at
http://neuling.org/linux-next-size.html .

Status of my local build tests will be at
http://kisskb.ellerman.id.au/linux-next .  If maintainers want to give
advice about cross compilers/configs that work, we are always open to add
more builds.

Thanks to Randy Dunlap for doing many randconfig builds.  And to Paul
Gortmaker for triage and bug fixes.

-- 
Cheers,
Stephen Rothwell

$ git checkout master
$ git reset --hard stable
Merging origin/master (ac904ae6e6f0 Merge branch 'for-linus' of git://git.kernel.dk/linux-block)
Merging fixes/master (5edb56491d48 Linux 4.7-rc3)
Merging kbuild-current/rc-fixes (b36fad65d61f kbuild: Initialize exported variables)
Merging arc-current/for-curr (9bd54517ee86 arc: unwind: warn only once if DW2_UNWIND is disabled)
Merging arm-current/fixes (56530f5d2ddc ARM: 8579/1: mm: Fix definition of pmd_mknotpresent)
Merging m68k-current/for-linus (9a6462763b17 m68k/mvme16x: Include generic <linux/rtc.h>)
Merging metag-fixes/fixes (0164a711c97b metag: Fix ioremap_wc/ioremap_cached build errors)
Merging powerpc-fixes/fixes (eb584b3ee4d3 powerpc/tm: Fix stack pointer corruption in __tm_recheckpoint())
Merging powerpc-merge-mpe/fixes (bc0195aad0da Linux 4.2-rc2)
Merging sparc/master (6b15d6650c53 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net)
Merging net/master (bc86765181aa Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net)
Merging ipsec/master (d6af1a31cc72 vti: Add pmtu handling to vti_xmit.)
Merging netfilter/master (62131e5d7352 netfilter: nft_meta: set skb->nf_trace appropriately)
Merging ipvs/master (3777ed688fba ipvs: fix bind to link-local mcast IPv6 address in backup)
Merging wireless-drivers/master (034fdd4a17ff Merge ath-current from ath.git)
Merging mac80211/master (16a910a6722b cfg80211: handle failed skb allocation)
Merging sound-current/for-linus (9cd25743765c ALSA: hda/realtek: Add Lenovo L460 to docking unit fixup)
Merging pci-current/for-linus (ef0dab4aae14 PCI: Fix unaligned accesses in VC code)
Merging driver-core.current/driver-core-linus (33688abb2802 Linux 4.7-rc4)
Merging tty.current/tty-linus (a99cde438de0 Linux 4.7-rc6)
Merging usb.current/usb-linus (a99cde438de0 Linux 4.7-rc6)
Merging usb-gadget-fixes/fixes (50c763f8c1ba usb: dwc3: Set the ClearPendIN bit on Clear Stall EP command)
Merging usb-serial-fixes/usb-linus (4c2e07c6a29e Linux 4.7-rc5)
Merging usb-chipidea-fixes/ci-for-usb-stable (ea1d39a31d3b usb: common: otg-fsm: add license to usb-otg-fsm)
Merging staging.current/staging-linus (a99cde438de0 Linux 4.7-rc6)
Merging char-misc.current/char-misc-linus (33688abb2802 Linux 4.7-rc4)
Merging input-current/for-linus (caca925fca4f Input: xpad - validate USB endpoint count during probe)
Merging crypto-current/master (055ddaace035 crypto: user - re-add size check for CRYPTO_MSG_GETALG)
Merging ide/master (1993b176a822 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide)
Merging rr-fixes/fixes (8244062ef1e5 modules: fix longstanding /proc/kallsyms vs module insertion race.)
Merging vfio-fixes/for-linus (ce7585f3c4d7 vfio/pci: Allow VPD short read)
Merging kselftest-fixes/fixes (f80eb4289491 selftests/exec: Makefile is a run-time dependency, add it to the install list)
Merging backlight-fixes/for-backlight-fixes (68feaca0b13e backlight: pwm: Handle EPROBE_DEFER while requesting the PWM)
Merging ftrace-fixes/for-next-urgent (6224beb12e19 tracing: Have branch tracer use recursive field of task struct)
Merging mfd-fixes/for-mfd-fixes (5baaf3b9efe1 usb: dwc3: st: Use explicit reset_control_get_exclusive() API)
Merging drm-intel-fixes/for-linux-next-fixes (cab103274352 drm/i915: Fix missing unlock on error in i915_ppgtt_info())
Merging asm-generic/master (b0da6d44157a asm-generic: Drop renameat syscall from default list)
Merging arc/for-next (9bd54517ee86 arc: unwind: warn only once if DW2_UNWIND is disabled)
Merging arm/for-next (e69089ce7984 Merge branches 'component', 'fixes' and 'misc' into for-next)
Merging arm-perf/for-next/perf (1a695a905c18 Linux 4.7-rc1)
Merging arm-soc/for-next (cdd641aa1c2d Merge branch 'next/cleanup' into for-next)
Merging amlogic/for-next (4d9b3db03bd4 Merge remote-tracking branch 'clk/clk-s905' into tmp/aml-rebuild)
Merging at91/at91-next (0f59c948faed Merge tag 'at91-ab-4.8-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux into at91-next)
Merging bcm2835/for-next (aa5c0a1e15c2 Merge branch anholt/bcm2835-dt-64-next into for-next)
Merging berlin/berlin/for-next (8ea93fef7612 Merge branch 'berlin64/dt' into berlin/for-next)
Merging cortex-m/for-next (f719a0d6a854 ARM: efm32: switch to vendor,device compatible strings)
Merging imx-mxs/for-next (63a404a3f177 Merge branch 'imx/defconfig' into for-next)
Merging keystone/next (eef6bb9fc17a Merge branch 'for_4.8/keystone' into next)
Merging mvebu/for-next (26b5a342ead6 Merge branch 'mvebu/defconfig64' into mvebu/for-next)
Merging omap/for-next (312cd3b1ce54 Merge branch 'omap-for-v4.8/soc' into for-next)
Merging omap-pending/for-next (c20c8f750d9f ARM: OMAP2+: hwmod: fix _idle() hwmod state sanity check sequence)
Merging qcom/for-next (2083e2852282 firmware: qcom: scm: Change initcall to subsys)
Merging renesas/next (a48de99a74c6 Merge branches 'heads/arm64-defconfig-for-v4.8', 'heads/arm64-dt-for-v4.8', 'heads/defconfig-for-v4.8', 'heads/dt-for-v4.8' and 'heads/soc-for-v4.8' into next)
Merging rockchip/for-next (a37b05423406 Merge branch 'v4.8-clk/next' into for-next)
Merging rpi/for-rpi-next (bc0195aad0da Linux 4.2-rc2)
Merging samsung/for-next (92e963f50fc7 Linux 4.5-rc1)
Merging samsung-krzk/for-next (d11d19d93a01 Merge branch 'next/defconfig64' into for-next)
CONFLICT (content): Merge conflict in arch/arm/boot/dts/exynos5420.dtsi
Merging tegra/for-next (34db2df13ab7 Merge branch for-4.8/arm64 into for-next)
Merging arm64/for-next/core (40f87d3114b8 arm64: mm: fold init_pgd() into __create_pgd_mapping())
Merging blackfin/for-linus (391e74a51ea2 eth: bf609 eth clock: add pclk clock for stmmac driver probe)
CONFLICT (content): Merge conflict in arch/blackfin/mach-common/pm.c
Merging c6x/for-linux-next (ca3060d39ae7 c6x: Use generic clkdev.h header)
Merging cris/for-next (f9f3f864b5e8 cris: Fix section mismatches in architecture startup code)
Merging h8300/h8300-next (58c57526711f h8300: Add missing include file to asm/io.h)
Merging hexagon/linux-next (02cc2ccfe771 Revert "Hexagon: fix signal.c compile error")
Merging ia64/next (70f4f9352317 ia64: efi: use timespec64 for persistent clock)
Merging m68k/for-next (86a8280a7fe0 m68k: Assorted spelling fixes)
Merging m68knommu/for-next (33688abb2802 Linux 4.7-rc4)
Merging metag/for-next (592ddeeff8cb metag: Fix typos)
Merging microblaze/next (52e9e6e05617 microblaze: pci: export isa_io_base to fix link errors)
Merging mips/mips-for-linux-next (d117d8edaf68 Merge branch '4.7-fixes' into mips-for-linux-next)
Merging nios2/for-next (9fa78f63a892 nios2: Add order-only DTC dependency to %.dtb target)
Merging parisc-hd/for-next (5975b2c0c10a Merge branch 'parisc-4.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux)
Merging powerpc/next (656ad58ef19e powerpc/boot: Add OPAL console to epapr wrappers)
CONFLICT (content): Merge conflict in arch/powerpc/Kconfig
Merging powerpc-mpe/next (bc0195aad0da Linux 4.2-rc2)
Merging fsl/next (1eef33bec12d powerpc/86xx: Fix PCI interrupt map definition)
Merging mpc5xxx/next (39e69f55f857 powerpc: Introduce the use of the managed version of kzalloc)
Merging s390/features (d08de8e2d867 s390/mm: add support for 2GB hugepages)
Merging sparc-next/master (9f935675d41a Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input)
Merging tile/master (893d66192c46 tile: support gcc 7 optimization to use __multi3)
Merging uml/linux-next (a78ff1112263 um: add extended processor state save/restore support)
Merging unicore32/unicore32 (c83d8b2fc986 unicore32: mm: Add missing parameter to arch_vma_access_permitted)
Merging xtensa/for_next (9da8320bb977 xtensa: add test_kc705_hifi variant)
Merging btrfs/next (c315ef8d9db7 Merge branch 'for-chris-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/fdmanana/linux into for-linus-4.7)
Merging btrfs-kdave/for-next (9a09ded8fc63 Merge branch 'for-next-next-4.8-20160708' into for-next-20160708)
Merging ceph/master (f6973c09490c ceph: use i_version to check validity of fscache)
Merging cifs/for-next (fbe601f7a34b Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6)
Merging configfs/for-next (f8608985f851 configfs: Remove ppos increment in configfs_write_bin_file)
Merging ecryptfs/next (2bdcdbea80bd ecryptfs: don't allow mmap when the lower fs doesn't support it)
Merging ext3/for_next (e008bb6134a6 quota: use time64_t internally)
Merging ext4/dev (ff0031d848a0 ext2: fix filesystem deadlock while reading corrupted xattr block)
Merging f2fs/dev (ac6f199984a6 f2fs: avoid latency-critical readahead of node pages)
Merging freevxfs/for-next (bf1bb4b460c8 freevxfs: update Kconfig information)
Merging fscache/fscache (b00c2ae2ed3c FS-Cache: Don't override netfs's primary_index if registering failed)
Merging fuse/for-next (7879c4e58b7c fuse: improve aio directIO write performance for size extending writes)
Merging gfs2/for-next (fd4c5748b8d3 gfs2: writeout truncated pages)
Merging jfs/jfs-next (6ed71e9819ac jfs: Coalesce some formats)
Merging nfs/linux-next (8dcac3c2c8ec Merge branch 'writeback')
Merging nfsd/nfsd-next (dac75afd6c72 SUNRPC: Remove unused callback xpo_adjust_wspace())
Merging orangefs/for-next (78fee0b6846f orangefs: fix namespace handling)
Merging overlayfs/overlayfs-next (ee7d77e509f7 ovl: fix sgid on directory)
Merging v9fs/for-next (a333e4bf2556 fs/9p: use fscache mutex rather than spinlock)
Merging ubifs/linux-next (4ac1c17b2044 UBIFS: Implement ->migratepage())
Merging xfs/for-next (f477cedc4e79 Merge branch 'xfs-4.8-misc-fixes-2' into for-next)
Merging file-locks/linux-next (5af9c2e19da6 Merge branch 'akpm' (patches from Andrew))
Merging vfs/for-next (b223f4e215b3 Merge branch 'd_real' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs into work.misc)
CONFLICT (content): Merge conflict in fs/nfs/dir.c
Merging pci/next (e0af5a975e77 Merge branch 'pci/resource' into next)
CONFLICT (content): Merge conflict in drivers/pci/host/pci-tegra.c
CONFLICT (content): Merge conflict in drivers/nvme/host/pci.c
Merging pstore/for-next/pstore (35da60941e44 pstore/ram: add Device Tree bindings)
Merging hid/for-next (e4b13735684f Merge branch 'for-4.8/logitech-hidpp-battery' into for-next)
Merging i2c/i2c/for-next (4d3a55e1a1d5 Merge branch 'i2c/for-4.8' into i2c/for-next)
Merging jdelvare-hwmon/master (18c358ac5e32 Documentation/hwmon: Update links in max34440)
Merging dmi/master (c3db05ecf8ac firmware: dmi_scan: Save SMBIOS Type 9 System Slots)
Merging hwmon-staging/hwmon-next (eacc48ce3acc hwmon: (jc42) Add I2C_CLASS_HWMON to detection class)
Merging v4l-dvb/master (ed5883b778c8 Merge branch 'patchwork' into to_next)
Merging pm/linux-next (d77ad69493c2 Merge branch 'pm-cpu' into linux-next)
Merging idle/next (f55532a0c0b8 Linux 4.6-rc1)
Merging thermal/next (2c5ce98e1e83 thermal: sysfs: add comments describing locking strategy)
Merging thermal-soc/next (9a1d2bd3e7fd Merge branch 'work-fixes' into work-next)
CONFLICT (add/add): Merge conflict in drivers/thermal/thermal_sysfs.c
CONFLICT (add/add): Merge conflict in drivers/thermal/thermal_helpers.c
CONFLICT (content): Merge conflict in drivers/thermal/thermal_core.c
Merging ieee1394/for-next (384fbb96f926 firewire: nosy: Replace timeval with timespec64)
Merging dlm/next (5c93f56f770e dlm: Use kmemdup instead of kmalloc and memcpy)
Merging swiotlb/linux-next (386744425e35 swiotlb: Make linux/swiotlb.h standalone includible)
Merging slave-dma/next (8a60368bd4fc Merge branch 'topic/bam' into next)
Merging net-next/master (a90a6e55f34f Merge tag 'mac80211-next-for-davem-2016-07-06' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next)
CONFLICT (content): Merge conflict in drivers/net/ethernet/freescale/fec.h
CONFLICT (content): Merge conflict in arch/arm64/boot/dts/broadcom/ns2.dtsi
CONFLICT (content): Merge conflict in arch/arm64/boot/dts/broadcom/ns2-svk.dts
Merging ipsec-next/master (cb866e3298cd xfrm: Increment statistic counter on inner mode error)
Merging netfilter-next/master (c6ac37d8d884 netfilter: nf_log: fix error on write NONE to logger choice sysctl)
Merging ipvs-next/master (be2cef49904b ipvs: count pre-established TCP states as active)
Merging wireless-drivers-next/master (300c32ca84f5 rtlwifi: rtl8821ae: Fix potential race condition)
CONFLICT (content): Merge conflict in drivers/net/wireless/marvell/mwifiex/cmdevt.c
Merging bluetooth/master (9420b64e39f2 Bluetooth: btusb: add support for device 0489:e092)
Merging mac80211-next/master (7d27a0ba7adc cfg80211: Add mesh peer AID setting API)
Applying: mwifiex: fixup for "nl80211: support beacon report scanning"
Merging rdma/for-next (fb92d8fb1b9c Merge branches 'cxgb4-4.8', 'mlx5-4.8' and 'fw-version' into k.o/for-4.8)
Merging rdma-leon/rdma-next (4c2e07c6a29e Linux 4.7-rc5)
Merging rdma-leon-test/testing/rdma-next (37db4c9066f1 Merge branch 'topic/mc_join_only' into testing/rdma-next)
Merging mtd/master (becc7ae544c6 MAINTAINERS: Add file patterns for mtd device tree bindings)
Merging l2-mtd/master (95193796256c mtd: m25p80: read in spi_max_transfer_size chunks)
Merging nand/nand/next (fff358dd9d7a mtd: nand: jz4780: Update MODULE_AUTHOR email address)
Merging crypto/master (879f77e9071f crypto: qat - Add RSA CRT mode)
Merging drm/drm-next (5dd0775e502b Merge tag 'asoc-hdmi-codec-pdata' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into drm-next)
CONFLICT (content): Merge conflict in drivers/gpu/drm/sti/sti_drv.c
Merging drm-panel/drm/panel/for-next (38a0b2fba10a drm/panel: simple: Add support for LG LP079QX1-SP0V panel)
Merging drm-intel/for-linux-next (22dea0be50b2 drm/i915: Introduce Kabypoint PCH for Kabylake H/DT.)
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/intel_fbc.c
Merging drm-tegra/drm/tegra/for-next (44fe78354d70 drm/tegra: sor: Prepare for generic PM domain support)
Merging drm-misc/topic/drm-misc (2ae995887830 drm: Fix a typo in drm_ioctl.c)
Merging drm-exynos/exynos-drm/for-next (25364a9e54fb Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid)
Merging drm-msm/msm-next (a423723f1ab4 drm/msm/rd: add module param to dump all bo's)
CONFLICT (content): Merge conflict in drivers/gpu/drm/msm/msm_drv.c
Merging hdlcd/for-upstream/hdlcd (f6c68b4bd4a9 drm: hdlcd: Add information about the underlying framebuffers in debugfs)
Merging mali-dp/for-upstream/mali-dp (59ba2422b430 MAINTAINERS: Add entry for Mali-DP driver)
Merging sunxi/sunxi/for-next (25d6a931b3f3 Merge branches 'sunxi/clk-fixes-for-4.7', 'sunxi/defconfig-for-4.8', 'sunxi/drm-fixes-for-4.7' and 'sunxi/dt-for-4.8' into sunxi/for-next)
Merging kbuild/for-next (7e01dad0469b Merge branch 'kbuild/kbuild' into kbuild/for-next)
Applying: gcc-plugins: disable under COMPILE_TEST
Merging kspp/for-next/kspp (930e444f3a67 gcc-plugins: Add support for plugin subdirectories)
Merging kconfig/for-next (5bcba792bb30 localmodconfig: Fix whitespace repeat count after "tristate")
Merging regmap/for-next (0bb2cf262087 Merge remote-tracking branches 'regmap/topic/bulk', 'regmap/topic/i2c', 'regmap/topic/irq' and 'regmap/topic/maintainers' into regmap-next)
Merging sound/for-next (b268c34e5ee9 ALSA: ppc/awacs: shut up maybe-uninitialized warning)
Merging sound-asoc/for-next (b914036448f9 Merge remote-tracking branches 'asoc/topic/wm8753' and 'asoc/topic/wm8985' into asoc-next)
Merging modules/modules-next (e2d1248432c4 module: Disable MODULE_FORCE_LOAD when MODULE_SIG_FORCE is enabled)
Merging input/next (fcd6eb50eadd Input: add powerkey driver for HISI 65xx SoC)
Merging block/for-next (191d684c5d4f Merge branch 'for-4.8/drivers' into for-next)
CONFLICT (content): Merge conflict in fs/f2fs/segment.c
CONFLICT (content): Merge conflict in fs/f2fs/data.c
CONFLICT (content): Merge conflict in fs/btrfs/volumes.h
CONFLICT (content): Merge conflict in fs/btrfs/volumes.c
CONFLICT (content): Merge conflict in fs/btrfs/inode.c
CONFLICT (content): Merge conflict in fs/btrfs/extent_io.c
CONFLICT (content): Merge conflict in fs/btrfs/extent-tree.c
CONFLICT (content): Merge conflict in fs/btrfs/disk-io.c
CONFLICT (content): Merge conflict in fs/btrfs/compression.c
CONFLICT (content): Merge conflict in drivers/block/xen-blkfront.c
CONFLICT (content): Merge conflict in block/blk-lib.c
Merging lightnvm/for-next (e5a7e383ab50 lightnvm: make __nvm_submit_ppa static)
Merging device-mapper/for-next (7193a9defcab dm rq: check kthread_run return for .request_fn request-based DM)
Merging pcmcia/master (e8e68fd86d22 pcmcia: do not break rsrc_nonstatic when handling anonymous cards)
Merging mmc-uh/next (4e01b578ade9 mmc: core: Extend sysfs with OCR register)
Merging md/for-next (d787be4092e2 md: reduce the number of synchronize_rcu() calls when multiple devices fail.)
CONFLICT (content): Merge conflict in drivers/md/raid10.c
CONFLICT (content): Merge conflict in drivers/md/raid1.c
Merging mfd/for-mfd-next (f37be01e6dc6 mfd: qcom_rpm: Parametrize also ack selector size)
Merging backlight/for-backlight-next (602553073892 backlight: lp855x: Add enable regulator)
Merging battery/master (4fcd504edbf7 power: reset: add reboot mode driver)
Merging omap_dss2/for-next (ab366b40b851 fbdev: Use IS_ENABLED() instead of checking for built-in or module)
Merging regulator/for-next (c8f308540ced Merge remote-tracking branch 'regulator/topic/twl' into regulator-next)
Merging security/next (c632809953fb Merge branch 'smack-for-4.8' of https://github.com/cschaufler/smack-next into next)
CONFLICT (content): Merge conflict in Documentation/devicetree/bindings/vendor-prefixes.txt
Merging integrity/next (544e1cea03e6 ima: extend the measurement entry specific pcr)
Merging keys/keys-next (05638c9bc586 Merge branch 'keys-asym-keyctl' into keys-next)
Merging selinux/next (3f09354ac84c netlabel: Implement CALIPSO config functions for SMACK.)
Merging tpmdd/next (f786b7520982 tpm_crb: fix address space of the return pointer in crb_map_res())
Merging watchdog/master (1a695a905c18 Linux 4.7-rc1)
Merging iommu/next (8a3a457a5c69 Merge branches 'iommu/fixes', 'x86/amd', 'x86/vt-d', 'arm/exynos', 'arm/mediatek', 'arm/msm' and 'arm/rockchip' into next)
CONFLICT (content): Merge conflict in drivers/iommu/mtk_iommu.c
Merging dwmw2-iommu/master (2566278551d3 Merge git://git.infradead.org/intel-iommu)
Merging vfio/next (9698cbf0bea6 vfio: platform: support No-IOMMU mode)
Merging jc_docs/docs-next (a039ba34a349 Doc: ocfs: Fix typo in filesystems/ocfs2-online-filecheck.txt)
CONFLICT (content): Merge conflict in Documentation/index.rst
Merging trivial/for-next (34df117414d7 fat: fix error message for bogus number of directory entries)
Merging audit/next (86b2efbe3a39 audit: add fields to exclude filter by reusing user filter)
CONFLICT (content): Merge conflict in arch/s390/kernel/ptrace.c
Merging devicetree/for-next (15cc2ed6dcf9 of/irq: Mark initialised interrupt controllers as populated)
CONFLICT (content): Merge conflict in arch/arm/mach-imx/mach-imx51.c
CONFLICT (content): Merge conflict in arch/arm/mach-bcm/board_bcm21664.c
Merging mailbox/mailbox-for-next (9ac3e85a5c5c mailbox: pl320: remove __raw IO)
Merging spi/for-next (aaae27fe5146 Merge remote-tracking branches 'spi/topic/sh-msiof', 'spi/topic/spidev', 'spi/topic/sunxi', 'spi/topic/ti-qspi' and 'spi/topic/txx9' into spi-next)
Merging tip/auto-latest (2c387f55aaba Merge branch 'timers/core')
Merging clockevents/clockevents/next (3d802c5c8cfa Merge branches 'clockevents/clksrc-of-ret' and 'clockevents/compile-test' into clockevents/next)
CONFLICT (content): Merge conflict in arch/arm/mach-mxs/Kconfig
CONFLICT (content): Merge conflict in arch/arm/Kconfig
Applying: clocksource/drivers/clps_711x: fixup for "ARM: clps711x: Switch to MULTIPLATFORM"
Merging edac/linux_next (12f0721c5a70 sb_edac: correctly fetch DIMM width on Ivy Bridge and Haswell)
Merging edac-amd/for-next (a67adb32d941 ARM: dts: Add Arria10 Ethernet EDAC devicetree entry)
Merging irqchip/irqchip/for-next (77d50b17c990 Merge branch 'irqchip/misc' into irqchip/for-next)
Merging ftrace/for-next (501c2375253c ftrace: Move toplevel init out of ftrace_init_tracefs())
Merging rcu/rcu/next (490fa388d969 rcu: Suppress sparse warnings for rcu_dereference_raw())
Merging kvm/linux-next (8426097258c8 MIPS: KVM: Emulate generic QEMU machine on r6 T&E)
CONFLICT (content): Merge conflict in arch/x86/kvm/vmx.c
CONFLICT (content): Merge conflict in arch/s390/hypfs/hypfs_diag.c
Applying: s390: fix merge conflict in arch/s390/kvm/kvm-s390.c
Applying: s390: merge fix up for __diag204 move
Merging kvm-arm/next (6c41a413fd44 arm/arm64: Get rid of KERN_TO_HYP)
Merging kvm-ppc/kvm-ppc-next (c63517c2e381 KVM: PPC: Book3S: correct width in XER handling)
Merging kvm-ppc-paulus/kvm-ppc-next (fd7bacbca47a KVM: PPC: Book3S HV: Fix TB corruption in guest exit path on HMI interrupt)
CONFLICT (content): Merge conflict in arch/powerpc/kernel/traps.c
Merging kvms390/next (5ffe466cd3a3 KVM: s390: inject PER i-fetch events on applicable icpts)
Merging xen-tip/linux-next (bdadcaf2a7c1 xen: remove incorrect forward declaration)
Merging percpu/for-next (6710e594f71c percpu: fix synchronization between synchronous map extension and chunk destruction)
Merging workqueues/for-next (d945b5e9f0e3 workqueue: Fix setting affinity of unbound worker threads)
Merging drivers-x86/for-next (df2294fb6428 intel_pmc_core: Convert to DEFINE_DEBUGFS_ATTRIBUTE)
Merging chrome-platform/for-next (31b764171cb5 Revert "platform/chrome: chromeos_laptop: Add Leon Touch")
Merging hsi/for-next (9c99e5e51988 HSI: omap_ssi: drop pm_runtime_irq_safe)
Merging leds/for-next (a3eac76cdf72 leds: triggers: return error if invalid trigger name is provided via sysfs)
Merging ipmi/for-next (92cad0931b08 ipmi: remove trydefaults parameter and default init)
Merging driver-core/driver-core-next (33688abb2802 Linux 4.7-rc4)
Merging tty/tty-next (67417f9c262e Merge 4.7-rc6 into tty-next)
Merging usb/usb-next (c318a821b982 Merge 4.7-rc6 into usb-next)
Applying: staging: emxx_udc: allow modular build
Merging usb-gadget/next (15e4292a2d21 usb: renesas_usbhs: protect the CFIFOSEL setting in usbhsg_ep_enable())
Merging usb-serial/usb-next (4c2e07c6a29e Linux 4.7-rc5)
Merging usb-chipidea-next/ci-for-usb-next (ebfad91c5da3 dt-bindings: ci-hdrc-usb2: s/gadget-itc-setting/itc-setting in example)
Merging staging/staging-next (7813029a509c Merge 4.7-rc6 into staging-next)
CONFLICT (modify/delete): drivers/staging/lustre/lustre/llite/lloop.c deleted in staging/staging-next and modified in HEAD. Version HEAD of drivers/staging/lustre/lustre/llite/lloop.c left in tree.
CONFLICT (modify/delete): drivers/staging/android/sync.h deleted in staging/staging-next and modified in HEAD. Version HEAD of drivers/staging/android/sync.h left in tree.
$ git rm -f drivers/staging/lustre/lustre/llite/lloop.c drivers/staging/android/sync.h
Applying: staging/android: merge fix up for sync.h renaming
Merging char-misc/char-misc-next (e2402b1d214e nvmem: imx-ocotp: Fix assignment warning.)
Merging extcon/extcon-next (27210e4efd52 extcon: Move extcon_get_edev_by_phandle() errors to dbg level)
Merging cgroup/for-next (1f22cd881c59 Merge branch 'for-4.7-fixes' into for-next)
Merging scsi/for-next (be0763a62918 Merge branch 'fixes' into for-next)
Merging target-updates/for-next (8f0dfb3d8b11 iscsi-target: Fix early sk_data_ready LOGIN_FLAGS_READY race)
Merging target-merge/for-next-merge (2994a7518317 cxgb4: update Kconfig and Makefile)
Merging libata/for-next (77d88263971e Merge branch 'for-4.8' into for-next)
Merging binfmt_misc/for-next (4af75df6a410 binfmt_misc: add F option description to documentation)
Merging pinctrl/for-next (8229bcf887b5 pinctrl: imx21: Remove the MODULE_DEVICE_TABLE() macro)
Merging vhost/linux-next (139ab4d4e68b tools/virtio: add noring tool)
Merging remoteproc/for-next (7a6271a80cae remoteproc/wkup_m3: Use MODULE_DEVICE_TABLE to export alias)
Merging rpmsg/for-next (b2250f65c884 Merge branches 'hwspinlock-next', 'rpmsg-next' and 'rproc-next' into for-next)
Merging gpio/for-next (e0877571c3de Merge branch 'devel' into for-next)
Merging dma-mapping/dma-mapping-next (d770e558e219 Linux 4.2-rc1)
Merging pwm/for-next (8910a6a600ee pwm: lpss: pci: Enable PWM module on Intel Edison)
CONFLICT (content): Merge conflict in Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt
Merging dma-buf/for-next (194cad44c4e1 dma-buf/sync_file: improve Kconfig description for Sync Files)
Merging userns/for-next (81754357770e fs: Update i_[ug]id_(read|write) to translate relative to s_user_ns)
CONFLICT (content): Merge conflict in fs/proc/root.c
CONFLICT (content): Merge conflict in fs/posix_acl.c
Applying: proc: fixup for "prevent stacking filesystems on top"
Merging ktest/for-next (2dcd0af568b0 Linux 4.6)
Merging clk/clk-next (a0fc8c4f4ca7 Merge branch 'clk-s905' into clk-next)
Merging aio/master (b562e44f507e Linux 4.5)
Merging kselftest/next (cde07f453bed selftests: media_tests - Add media_device_open to .gitignore)
Merging y2038/y2038 (4b277763c5b3 vfs: Add support to document max and min inode times)
Merging luto-misc/next (6436d4c1a83c x86/vdso: Fail the build if the vdso image has no dynamic section)
Merging borntraeger/linux-next (b562e44f507e Linux 4.5)
Merging livepatching/for-next (6d9122078097 Merge branch 'for-4.7/core' into for-next)
Merging coresight/next (a56b0d416cbe hwtracing: coresight: of_coresight: add missing of_node_put after calling of_parse_phandle)
Merging rtc/rtc-next (803bb30145df rtc: m48t86: move m48t86.h to platform_data)
Merging hwspinlock/for-next (bd5717a4632c hwspinlock: qcom: Correct msb in regmap_field)
Merging nvdimm/libnvdimm-for-next (a461529a9887 Merge branch 'for-4.8/mm' into libnvdimm-for-next)
Merging dax-misc/dax-misc (4d9a2c874667 dax: Remove i_mmap_lock protection)
Merging akpm-current/current (36ac8116836c ipc/msg.c: use freezable blocking call)
CONFLICT (content): Merge conflict in mm/page_alloc.c
CONFLICT (content): Merge conflict in ipc/sem.c
CONFLICT (content): Merge conflict in fs/ext4/fsync.c
CONFLICT (content): Merge conflict in arch/arm64/mm/dma-mapping.c
CONFLICT (modify/delete): arch/arm/configs/bcm_defconfig deleted in HEAD and modified in akpm-current/current. Version akpm-current/current of arch/arm/configs/bcm_defconfig left in tree.
$ git rm -f arch/arm/configs/bcm_defconfig
$ git checkout -b akpm remotes/origin/akpm/master
Applying: drivers/net/wireless/intel/iwlwifi/dvm/calib.c: simplfy min() expression
Applying: drivers/fpga/Kconfig: fix build failure
Applying: tree-wide: replace config_enabled() with IS_ENABLED()
Applying: include/linux/bitmap.h: cleanup
Merging akpm/master (dd527b6faddb include/linux/bitmap.h: cleanup)

^ permalink raw reply

* Re: linux-next: please clean up the lightnvm tree
From: Stephen Rothwell @ 2016-07-08  6:23 UTC (permalink / raw)
  To: Matias Bjørling; +Cc: linux-next, linux-kernel, Jens Axboe
In-Reply-To: <577F2C83.4060704@bjorling.me>

Hi Matias,

On Fri, 8 Jul 2016 06:30:59 +0200 Matias Bjørling <m@bjorling.me> wrote:
>
> Thanks Stephen. Updated the for-next. I will make sure they are taken 
> off if applied directly to the block tree in the future.

Tnanks.

-- 
Cheers,
Stephen Rothwell

^ permalink raw reply

* linux-next: manual merge of the userns tree with Linus' tree
From: Stephen Rothwell @ 2016-07-08  6:13 UTC (permalink / raw)
  To: Eric W. Biederman
  Cc: linux-next, linux-kernel, Andreas Gruenbacher, J. Bruce Fields

Hi Eric,

Today's linux-next merge of the userns tree got a conflict in:

  fs/posix_acl.c

between commit:

  485e71e8fb63 ("posix_acl: Add set_posix_acl")

from Linus' tree and commit:

  0d4d717f2583 ("vfs: Verify acls are valid within superblock's s_user_ns.")

from the userns tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc fs/posix_acl.c
index edc452c2a563,647c28180675..000000000000
--- a/fs/posix_acl.c
+++ b/fs/posix_acl.c
@@@ -833,24 -839,6 +833,24 @@@ set_posix_acl(struct inode *inode, int 
  	if (!inode_owner_or_capable(inode))
  		return -EPERM;
  
 +	if (acl) {
- 		int ret = posix_acl_valid(acl);
++		int ret = posix_acl_valid(inode->i_sb->s_user_ns, acl);
 +		if (ret)
 +			return ret;
 +	}
 +	return inode->i_op->set_acl(inode, acl, type);
 +}
 +EXPORT_SYMBOL(set_posix_acl);
 +
 +static int
 +posix_acl_xattr_set(const struct xattr_handler *handler,
 +		    struct dentry *unused, struct inode *inode,
 +		    const char *name, const void *value,
 +		    size_t size, int flags)
 +{
 +	struct posix_acl *acl = NULL;
 +	int ret;
 +
  	if (value) {
  		acl = posix_acl_from_xattr(&init_user_ns, value, size);
  		if (IS_ERR(acl))

^ permalink raw reply

* Re: linux-next: please clean up the lightnvm tree
From: Matias Bjørling @ 2016-07-08  4:30 UTC (permalink / raw)
  To: Stephen Rothwell; +Cc: linux-next, linux-kernel, Jens Axboe
In-Reply-To: <20160708142251.650e3756@canb.auug.org.au>

On 07/08/2016 06:22 AM, Stephen Rothwell wrote:
> Hi Matias,
>
> I noticed that the commits in the lightnvm tree have been applied
> to the block tree as a series of patches (i.e. effectively rebased).
> Could you please remove all the duplicate patches from the lightnvm tree
> (which I think is the whole tree, curretly) before they start causing
> merge conflicts for me.
>
> One way to do this would be to rebase your tree on top of the block tree.
>

Thanks Stephen. Updated the for-next. I will make sure they are taken 
off if applied directly to the block tree in the future.

^ permalink raw reply

* linux-next: please clean up the lightnvm tree
From: Stephen Rothwell @ 2016-07-08  4:22 UTC (permalink / raw)
  To: Matias Bjørling; +Cc: linux-next, linux-kernel, Jens Axboe

Hi Matias,

I noticed that the commits in the lightnvm tree have been applied
to the block tree as a series of patches (i.e. effectively rebased).
Could you please remove all the duplicate patches from the lightnvm tree
(which I think is the whole tree, curretly) before they start causing
merge conflicts for me.

One way to do this would be to rebase your tree on top of the block tree.

-- 
Cheers,
Stephen Rothwell

^ permalink raw reply

* Re: linux-next: manual merge of the block tree with Linus' tree
From: Stephen Rothwell @ 2016-07-08  4:14 UTC (permalink / raw)
  To: Jens Axboe
  Cc: linux-next, linux-kernel, Bob Liu, Konrad Rzeszutek Wilk,
	Mike Christie, Christoph Hellwig
In-Reply-To: <20160708130750.1ef2ffc9@canb.auug.org.au>

Hi all,

On Fri, 8 Jul 2016 13:07:50 +1000 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
>  +			 * Get the bios in the request so we can re-queue them.
>  +			 */
> - 			if (shadow[j].request->cmd_flags &
> - 					(REQ_FLUSH | REQ_FUA | REQ_DISCARD | REQ_SECURE)) {
> ++			if (req_op(shadow[j].request) == REQ_OP_FLUSH ||
> ++			    req_op(shadow[j].request) == REQ_OP_DISCARD ||
> ++			    req_op(shadow[j].request) == REQ_OP_SECURE_ERASE ||
> ++			    shadow[j].request->cmd_flags & REQ_FUA)) {
                                                                  ^
That is an extra ')' which I have now removed.

-- 
Cheers,
Stephen Rothwell

^ permalink raw reply

* linux-next: manual merge of the block tree with the btrfs-kdave tree
From: Stephen Rothwell @ 2016-07-08  4:03 UTC (permalink / raw)
  To: Jens Axboe, David Sterba
  Cc: linux-next, linux-kernel, Jeff Mahoney, Mike Christie

Hi Jens,

Today's linux-next merge of the block tree got a conflict in:

  fs/btrfs/volumes.h

between commit:

  26112f7f4726 ("btrfs: take an fs_info parameter directly when the root is not used otherwise")

from the btrfs-kdave tree and commit:

  81a75f6781de ("btrfs: use bio fields for op and flags")

from the block tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc fs/btrfs/volumes.h
index dc219e259281,6613e6335ca2..000000000000
--- a/fs/btrfs/volumes.h
+++ b/fs/btrfs/volumes.h
@@@ -384,13 -385,13 +384,13 @@@ int btrfs_map_sblock(struct btrfs_fs_in
  int btrfs_rmap_block(struct btrfs_mapping_tree *map_tree,
  		     u64 chunk_start, u64 physical, u64 devid,
  		     u64 **logical, int *naddrs, int *stripe_len);
 -int btrfs_read_sys_array(struct btrfs_root *root);
 -int btrfs_read_chunk_tree(struct btrfs_root *root);
 +int btrfs_read_sys_array(struct btrfs_fs_info *fs_info);
 +int btrfs_read_chunk_tree(struct btrfs_fs_info *fs_info);
  int btrfs_alloc_chunk(struct btrfs_trans_handle *trans,
 -		      struct btrfs_root *extent_root, u64 type);
 +		      struct btrfs_fs_info *fs_info, u64 type);
  void btrfs_mapping_init(struct btrfs_mapping_tree *tree);
  void btrfs_mapping_tree_free(struct btrfs_mapping_tree *tree);
- int btrfs_map_bio(struct btrfs_fs_info *fs_info, int rw, struct bio *bio,
 -int btrfs_map_bio(struct btrfs_root *root, struct bio *bio,
++int btrfs_map_bio(struct btrfs_fs_info *fs_info, struct bio *bio,
  		  int mirror_num, int async_submit);
  int btrfs_open_devices(struct btrfs_fs_devices *fs_devices,
  		       fmode_t flags, void *holder);

^ permalink raw reply

* linux-next: manual merge of the block tree with the btrfs-kdave tree
From: Stephen Rothwell @ 2016-07-08  4:00 UTC (permalink / raw)
  To: Jens Axboe, David Sterba
  Cc: linux-next, linux-kernel, Jeff Mahoney, Mike Christie

Hi Jens,

Today's linux-next merge of the block tree got a conflict in:

  fs/btrfs/volumes.c

between commit:

  26112f7f4726 ("btrfs: take an fs_info parameter directly when the root is not used otherwise")

from the btrfs-kdave tree and commit:

  4e49ea4a3d27 ("block/fs/drivers: remove rw argument from submit_bio")
  81a75f6781de ("btrfs: use bio fields for op and flags")

from the block tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc fs/btrfs/volumes.c
index 64d2557fe7fc,14b2d19c842c..000000000000
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@@ -5984,10 -5999,10 +5989,10 @@@ static void btrfs_end_bio(struct bio *b
   * This will add one bio to the pending list for a device and make sure
   * the work struct is scheduled.
   */
 -static noinline void btrfs_schedule_bio(struct btrfs_root *root,
 -					struct btrfs_device *device,
 +static noinline void btrfs_schedule_bio(struct btrfs_device *device,
- 					int rw, struct bio *bio)
+ 					struct bio *bio)
  {
 +	struct btrfs_fs_info *fs_info = device->fs_info;
  	int should_queue = 1;
  	struct btrfs_pending_bios *pending_bios;
  
@@@ -6010,10 -6025,9 +6015,9 @@@
  	 * made progress against dirty pages when we've really just put it
  	 * on a queue for later
  	 */
 -	atomic_inc(&root->fs_info->nr_async_bios);
 +	atomic_inc(&fs_info->nr_async_bios);
  	WARN_ON(bio->bi_next);
  	bio->bi_next = NULL;
- 	bio->bi_rw |= rw;
  
  	spin_lock(&device->io_lock);
  	if (bio->bi_rw & REQ_SYNC)
@@@ -6033,14 -6047,15 +6037,14 @@@
  	spin_unlock(&device->io_lock);
  
  	if (should_queue)
 -		btrfs_queue_work(root->fs_info->submit_workers,
 -				 &device->work);
 +		btrfs_queue_work(fs_info->submit_workers, &device->work);
  }
  
 -static void submit_stripe_bio(struct btrfs_root *root, struct btrfs_bio *bbio,
 -			      struct bio *bio, u64 physical, int dev_nr,
 -			      int async)
 +static void submit_stripe_bio(struct btrfs_bio *bbio, struct bio *bio,
- 			      u64 physical, int dev_nr, int rw, int async)
++			      u64 physical, int dev_nr, int async)
  {
  	struct btrfs_device *dev = bbio->stripes[dev_nr].dev;
 +	struct btrfs_fs_info *fs_info = bbio->fs_info;
  
  	bio->bi_private = bbio;
  	btrfs_io_bio(bio)->stripe_index = dev_nr;
@@@ -6061,12 -6076,12 +6065,12 @@@
  #endif
  	bio->bi_bdev = dev->bdev;
  
 -	btrfs_bio_counter_inc_noblocked(root->fs_info);
 +	btrfs_bio_counter_inc_noblocked(fs_info);
  
  	if (async)
- 		btrfs_schedule_bio(dev, rw, bio);
 -		btrfs_schedule_bio(root, dev, bio);
++		btrfs_schedule_bio(dev, bio);
  	else
- 		btrfsic_submit_bio(rw, bio);
+ 		btrfsic_submit_bio(bio);
  }
  
  static void bbio_error(struct btrfs_bio *bbio, struct bio *bio, u64 logical)
@@@ -6083,7 -6098,7 +6087,7 @@@
  	}
  }
  
- int btrfs_map_bio(struct btrfs_fs_info *fs_info, int rw, struct bio *bio,
 -int btrfs_map_bio(struct btrfs_root *root, struct bio *bio,
++int btrfs_map_bio(struct btrfs_fs_info *fs_info, struct bio *bio,
  		  int mirror_num, int async_submit)
  {
  	struct btrfs_device *dev;
@@@ -6099,11 -6114,11 +6103,11 @@@
  	length = bio->bi_iter.bi_size;
  	map_length = length;
  
 -	btrfs_bio_counter_inc_blocked(root->fs_info);
 -	ret = __btrfs_map_block(root->fs_info, bio_op(bio), logical,
 -				&map_length, &bbio, mirror_num, 1);
 +	btrfs_bio_counter_inc_blocked(fs_info);
- 	ret = __btrfs_map_block(fs_info, rw, logical, &map_length, &bbio,
- 				mirror_num, 1);
++	ret = __btrfs_map_block(fs_info, bio_op(bio), logical, &map_length,
++				&bbio, mirror_num, 1);
  	if (ret) {
 -		btrfs_bio_counter_dec(root->fs_info);
 +		btrfs_bio_counter_dec(fs_info);
  		return ret;
  	}
  
@@@ -6115,18 -6130,17 +6119,18 @@@
  	atomic_set(&bbio->stripes_pending, bbio->num_stripes);
  
  	if ((bbio->map_type & BTRFS_BLOCK_GROUP_RAID56_MASK) &&
- 	    ((rw & WRITE) || (mirror_num > 1))) {
+ 	    ((bio_op(bio) == REQ_OP_WRITE) || (mirror_num > 1))) {
  		/* In this case, map_length has been set to the length of
  		   a single stripe; not the whole write */
- 		if (rw & WRITE) {
+ 		if (bio_op(bio) == REQ_OP_WRITE) {
 -			ret = raid56_parity_write(root, bio, bbio, map_length);
 +			ret = raid56_parity_write(fs_info, bio, bbio,
 +						  map_length);
  		} else {
 -			ret = raid56_parity_recover(root, bio, bbio, map_length,
 -						    mirror_num, 1);
 +			ret = raid56_parity_recover(fs_info, bio, bbio,
 +						    map_length, mirror_num, 1);
  		}
  
 -		btrfs_bio_counter_dec(root->fs_info);
 +		btrfs_bio_counter_dec(fs_info);
  		return ret;
  	}
  
@@@ -6150,10 -6164,11 +6155,10 @@@
  		} else
  			bio = first_bio;
  
 -		submit_stripe_bio(root, bbio, bio,
 -				  bbio->stripes[dev_nr].physical, dev_nr,
 -				  async_submit);
 +		submit_stripe_bio(bbio, bio, bbio->stripes[dev_nr].physical,
- 				  dev_nr, rw, async_submit);
++				  dev_nr, async_submit);
  	}
 -	btrfs_bio_counter_dec(root->fs_info);
 +	btrfs_bio_counter_dec(fs_info);
  	return 0;
  }
  

^ permalink raw reply

* linux-next: manual merge of the block tree with the btrfs-kdave tree
From: Stephen Rothwell @ 2016-07-08  3:49 UTC (permalink / raw)
  To: Jens Axboe, David Sterba
  Cc: linux-next, linux-kernel, Mike Christie, Jeff Mahoney, Liu Bo

Hi Jens,

Today's linux-next merge of the block tree got a conflict in:

  fs/btrfs/inode.c

between commit:

  b286384aac32 ("btrfs: root->fs_info cleanup, add fs_info convenience variables")
  26112f7f4726 ("btrfs: take an fs_info parameter directly when the root is not used otherwise")
  712518c27ed2 ("Btrfs: cleanup BUG_ON in merge_bio")

from the btrfs-kdave tree and commit:

  37226b2111b0 ("btrfs: use bio op accessors")
  b3d3fa519905 ("btrfs: update __btrfs_map_block for REQ_OP transition")
  81a75f6781de ("btrfs: use bio fields for op and flags")

from the block tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc fs/btrfs/inode.c
index 31b1195eb3d4,1323e4faa44c..000000000000
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@@ -1835,12 -1822,8 +1835,12 @@@ static void btrfs_clear_bit_hook(struc
  /*
   * extent_io.c merge_bio_hook, this must check the chunk tree to make sure
   * we don't create bios that span stripes or chunks
 + *
 + * return 1 if page cannot be merged to bio
 + * return 0 if page can be merged to bio
 + * return error otherwise
   */
- int btrfs_merge_bio_hook(int rw, struct page *page, unsigned long offset,
+ int btrfs_merge_bio_hook(struct page *page, unsigned long offset,
  			 size_t size, struct bio *bio,
  			 unsigned long bio_flags)
  {
@@@ -1856,9 -1838,10 +1856,10 @@@
  
  	length = bio->bi_iter.bi_size;
  	map_length = length;
- 	ret = btrfs_map_block(fs_info, rw, logical, &map_length, NULL, 0);
 -	ret = btrfs_map_block(root->fs_info, bio_op(bio), logical,
 -			      &map_length, NULL, 0);
 -	/* Will always return 0 with map_multi == NULL */
 -	BUG_ON(ret < 0);
++	ret = btrfs_map_block(fs_info, bio_op(bio), logical, &map_length,
++			      NULL, 0);
 +	if (ret < 0)
 +		return ret;
  	if (map_length < length + size)
  		return 1;
  	return 0;
@@@ -1872,14 -1855,14 +1873,13 @@@
   * At IO completion time the cums attached on the ordered extent record
   * are inserted into the btree
   */
- static int __btrfs_submit_bio_start(struct inode *inode, int rw,
- 				    struct bio *bio, int mirror_num,
- 				    unsigned long bio_flags,
+ static int __btrfs_submit_bio_start(struct inode *inode, struct bio *bio,
+ 				    int mirror_num, unsigned long bio_flags,
  				    u64 bio_offset)
  {
 -	struct btrfs_root *root = BTRFS_I(inode)->root;
  	int ret = 0;
  
 -	ret = btrfs_csum_one_bio(root, inode, bio, 0, 0);
 +	ret = btrfs_csum_one_bio(inode, bio, 0, 0);
  	BUG_ON(ret); /* -ENOMEM */
  	return 0;
  }
@@@ -1896,10 -1879,10 +1896,10 @@@ static int __btrfs_submit_bio_done(stru
  			  int mirror_num, unsigned long bio_flags,
  			  u64 bio_offset)
  {
 -	struct btrfs_root *root = BTRFS_I(inode)->root;
 +	struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
  	int ret;
  
- 	ret = btrfs_map_bio(fs_info, rw, bio, mirror_num, 1);
 -	ret = btrfs_map_bio(root, bio, mirror_num, 1);
++	ret = btrfs_map_bio(fs_info, bio, mirror_num, 1);
  	if (ret) {
  		bio->bi_error = ret;
  		bio_endio(bio);
@@@ -1927,8 -1909,8 +1927,8 @@@ static int btrfs_submit_bio_hook(struc
  	if (btrfs_is_free_space_inode(inode))
  		metadata = BTRFS_WQ_ENDIO_FREE_SPACE;
  
- 	if (!(rw & REQ_WRITE)) {
+ 	if (bio_op(bio) != REQ_OP_WRITE) {
 -		ret = btrfs_bio_wq_end_io(root->fs_info, bio, metadata);
 +		ret = btrfs_bio_wq_end_io(fs_info, bio, metadata);
  		if (ret)
  			goto out;
  
@@@ -1948,7 -1930,8 +1948,7 @@@
  		if (root->root_key.objectid == BTRFS_DATA_RELOC_TREE_OBJECTID)
  			goto mapit;
  		/* we're doing a write, do the async checksumming */
- 		ret = btrfs_wq_submit_bio(fs_info, inode, rw, bio, mirror_num,
 -		ret = btrfs_wq_submit_bio(BTRFS_I(inode)->root->fs_info,
 -				   inode, bio, mirror_num,
++		ret = btrfs_wq_submit_bio(fs_info, inode, bio, mirror_num,
  				   bio_flags, bio_offset,
  				   __btrfs_submit_bio_start,
  				   __btrfs_submit_bio_done);
@@@ -1960,7 -1943,7 +1960,7 @@@
  	}
  
  mapit:
- 	ret = btrfs_map_bio(fs_info, rw, bio, mirror_num, 0);
 -	ret = btrfs_map_bio(root, bio, mirror_num, 0);
++	ret = btrfs_map_bio(fs_info, bio, mirror_num, 0);
  
  out:
  	if (ret < 0) {
@@@ -7865,12 -7777,12 +7865,12 @@@ err
  }
  
  static inline int submit_dio_repair_bio(struct inode *inode, struct bio *bio,
- 					int rw, int mirror_num)
+ 					int mirror_num)
  {
 -	struct btrfs_root *root = BTRFS_I(inode)->root;
 +	struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
  	int ret;
  
- 	BUG_ON(rw & REQ_WRITE);
+ 	BUG_ON(bio_op(bio) == REQ_OP_WRITE);
  
  	bio_get(bio);
  
@@@ -7878,7 -7791,7 +7878,7 @@@
  	if (ret)
  		goto err;
  
- 	ret = btrfs_map_bio(fs_info, rw, bio, mirror_num, 0);
 -	ret = btrfs_map_bio(root, bio, mirror_num, 0);
++	ret = btrfs_map_bio(fs_info, bio, mirror_num, 0);
  err:
  	bio_put(bio);
  	return ret;
@@@ -8343,12 -8259,12 +8343,12 @@@ static inline int btrfs_lookup_and_bind
  }
  
  static inline int __btrfs_submit_dio_bio(struct bio *bio, struct inode *inode,
- 					 int rw, u64 file_offset, int skip_sum,
+ 					 u64 file_offset, int skip_sum,
  					 int async_submit)
  {
 +	struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
  	struct btrfs_dio_private *dip = bio->bi_private;
- 	int write = rw & REQ_WRITE;
+ 	bool write = bio_op(bio) == REQ_OP_WRITE;
 -	struct btrfs_root *root = BTRFS_I(inode)->root;
  	int ret;
  
  	if (async_submit)
@@@ -8366,10 -8283,10 +8366,10 @@@
  		goto map;
  
  	if (write && async_submit) {
- 		ret = btrfs_wq_submit_bio(fs_info, inode, rw, bio, 0, 0,
 -		ret = btrfs_wq_submit_bio(root->fs_info,
 -				   inode, bio, 0, 0, file_offset,
 -				   __btrfs_submit_bio_start_direct_io,
 -				   __btrfs_submit_bio_done);
++		ret = btrfs_wq_submit_bio(fs_info, inode, bio, 0, 0,
 +					  file_offset,
 +					  __btrfs_submit_bio_start_direct_io,
 +					  __btrfs_submit_bio_done);
  		goto err;
  	} else if (write) {
  		/*
@@@ -8386,7 -8303,7 +8386,7 @@@
  			goto err;
  	}
  map:
- 	ret = btrfs_map_bio(fs_info, rw, bio, 0, async_submit);
 -	ret = btrfs_map_bio(root, bio, 0, async_submit);
++	ret = btrfs_map_bio(fs_info, bio, 0, async_submit);
  err:
  	bio_put(bio);
  	return ret;
@@@ -8412,8 -8328,8 +8412,8 @@@ static int btrfs_submit_direct_hook(str
  	int i;
  
  	map_length = orig_bio->bi_iter.bi_size;
- 	ret = btrfs_map_block(fs_info, rw, start_sector << 9, &map_length,
- 			      NULL, 0);
 -	ret = btrfs_map_block(root->fs_info, bio_op(orig_bio),
++	ret = btrfs_map_block(fs_info, bio_op(orig_bio),
+ 			      start_sector << 9, &map_length, NULL, 0);
  	if (ret)
  		return -EIO;
  
@@@ -8475,7 -8393,8 +8477,8 @@@ next_block
  			btrfs_io_bio(bio)->logical = file_offset;
  
  			map_length = orig_bio->bi_iter.bi_size;
- 			ret = btrfs_map_block(fs_info, rw, start_sector << 9,
 -			ret = btrfs_map_block(root->fs_info, bio_op(orig_bio),
++			ret = btrfs_map_block(fs_info, bio_op(orig_bio),
+ 					      start_sector << 9,
  					      &map_length, NULL, 0);
  			if (ret) {
  				bio_put(bio);

^ permalink raw reply

* linux-next: manual merge of the block tree with the btrfs-kdave tree
From: Stephen Rothwell @ 2016-07-08  3:31 UTC (permalink / raw)
  To: Jens Axboe, David Sterba
  Cc: linux-next, linux-kernel, Jeff Mahoney, Mike Christie

Hi Jens,

Today's linux-next merge of the block tree got a conflict in:

  fs/btrfs/extent-tree.c

between commit:

  b286384aac32 ("btrfs: root->fs_info cleanup, add fs_info convenience variables")
[again, no commiter Signed-off-by]

from the btrfs-kdave tree and commit:

  b3d3fa519905 ("btrfs: update __btrfs_map_block for REQ_OP transition")

from the block tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc fs/btrfs/extent-tree.c
index dd7e454d1cf5,5796c4a9eec6..000000000000
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@@ -2047,10 -2046,10 +2047,10 @@@ int btrfs_discard_extent(struct btrfs_f
  	 * Avoid races with device replace and make sure our bbio has devices
  	 * associated to its stripes that don't go away while we are discarding.
  	 */
 -	btrfs_bio_counter_inc_blocked(root->fs_info);
 +	btrfs_bio_counter_inc_blocked(fs_info);
  	/* Tell the block device(s) that the sectors can be discarded */
- 	ret = btrfs_map_block(fs_info, REQ_DISCARD, bytenr, &num_bytes,
 -	ret = btrfs_map_block(root->fs_info, REQ_OP_DISCARD,
 -			      bytenr, &num_bytes, &bbio, 0);
++	ret = btrfs_map_block(fs_info, REQ_OP_DISCARD, bytenr, &num_bytes,
 +			      &bbio, 0);
  	/* Error condition is -ENOMEM */
  	if (!ret) {
  		struct btrfs_bio_stripe *stripe = bbio->stripes;

^ permalink raw reply

* linux-next: manual merge of the block tree with the btrfs-kdave tree
From: Stephen Rothwell @ 2016-07-08  3:27 UTC (permalink / raw)
  To: Jens Axboe, David Sterba; +Cc: linux-next, linux-kernel, Jeff Mahoney

Hi Jens,

Today's linux-next merge of the block tree got a conflict in:

  fs/btrfs/disk-io.c

between commit:

  b286384aac32 ("btrfs: root->fs_info cleanup, add fs_info convenience variables")
  26112f7f4726 ("btrfs: take an fs_info parameter directly when the root is not used otherwise")

from the btrfs-kdave tree and commit:

  81a75f6781de ("btrfs: use bio fields for op and flags")

from the block tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc fs/btrfs/disk-io.c
index 9d778665c9eb,e80ef6eb17e6..000000000000
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@@ -926,7 -921,7 +922,7 @@@ static int __btree_submit_bio_done(stru
  	 * when we're called for a write, we're already in the async
  	 * submission context.  Just jump into btrfs_map_bio
  	 */
- 	ret = btrfs_map_bio(btrfs_sb(inode->i_sb), rw, bio, mirror_num, 1);
 -	ret = btrfs_map_bio(BTRFS_I(inode)->root, bio, mirror_num, 1);
++	ret = btrfs_map_bio(btrfs_sb(inode->i_sb), bio, mirror_num, 1);
  	if (ret) {
  		bio->bi_error = ret;
  		bio_endio(bio);
@@@ -958,23 -952,24 +954,23 @@@ static int btree_submit_bio_hook(struc
  		 * called for a read, do the setup so that checksum validation
  		 * can happen in the async kernel threads
  		 */
 -		ret = btrfs_bio_wq_end_io(BTRFS_I(inode)->root->fs_info,
 -					  bio, BTRFS_WQ_ENDIO_METADATA);
 +		ret = btrfs_bio_wq_end_io(fs_info, bio,
 +					  BTRFS_WQ_ENDIO_METADATA);
  		if (ret)
  			goto out_w_error;
- 		ret = btrfs_map_bio(fs_info, rw, bio, mirror_num, 0);
 -		ret = btrfs_map_bio(BTRFS_I(inode)->root, bio, mirror_num, 0);
++		ret = btrfs_map_bio(fs_info, bio, mirror_num, 0);
  	} else if (!async) {
  		ret = btree_csum_one_bio(bio);
  		if (ret)
  			goto out_w_error;
- 		ret = btrfs_map_bio(fs_info, rw, bio, mirror_num, 0);
 -		ret = btrfs_map_bio(BTRFS_I(inode)->root, bio, mirror_num, 0);
++		ret = btrfs_map_bio(fs_info, bio, mirror_num, 0);
  	} else {
  		/*
  		 * kthread helpers are used to submit writes so that
  		 * checksumming can happen in parallel across all CPUs
  		 */
- 		ret = btrfs_wq_submit_bio(fs_info, inode, rw, bio,
 -		ret = btrfs_wq_submit_bio(BTRFS_I(inode)->root->fs_info,
 -					  inode, bio, mirror_num, 0,
 -					  bio_offset,
++		ret = btrfs_wq_submit_bio(fs_info, inode, bio,
 +					  mirror_num, 0, bio_offset,
  					  __btree_submit_bio_start,
  					  __btree_submit_bio_done);
  	}

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox