public inbox for linux-next@vger.kernel.org 
 help / color / mirror / Atom feed
* linux-next: manual merge of the akpm-current tree with the char-misc tree
@ 2014-01-14  4:51 Stephen Rothwell
  2014-01-14  8:31 ` Winkler, Tomas
  0 siblings, 1 reply; 9+ messages in thread
From: Stephen Rothwell @ 2014-01-14  4:51 UTC (permalink / raw)
  To: Andrew Morton, Greg KH, Arnd Bergmann
  Cc: linux-next, linux-kernel, Ian Munsie, Tomas Winkler

[-- Attachment #1: Type: text/plain, Size: 5243 bytes --]

Hi Andrew,

Today's linux-next merge of the akpm-current tree got a conflict in
drivers/misc/mei/init.c between commit 33ec08263147 ("mei: revamp mei
reset state machine") from the char-misc tree and commit dd045dab2999
("drivers/misc/mei: ratelimit several error messages") from the
akpm-current tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

-- 
Cheers,
Stephen Rothwell                    sfr@canb•auug.org.au

diff --cc drivers/misc/mei/init.c
index cdd31c2a2a2b,edd3bb6a5df9..000000000000
--- a/drivers/misc/mei/init.c
+++ b/drivers/misc/mei/init.c
@@@ -43,119 -43,41 +43,119 @@@ const char *mei_dev_state_str(int state
  #undef MEI_DEV_STATE
  }
  
 -void mei_device_init(struct mei_device *dev)
 -{
 -	/* setup our list array */
 -	INIT_LIST_HEAD(&dev->file_list);
 -	INIT_LIST_HEAD(&dev->device_list);
 -	mutex_init(&dev->device_lock);
 -	init_waitqueue_head(&dev->wait_hw_ready);
 -	init_waitqueue_head(&dev->wait_recvd_msg);
 -	init_waitqueue_head(&dev->wait_stop_wd);
 -	dev->dev_state = MEI_DEV_INITIALIZING;
  
 -	mei_io_list_init(&dev->read_list);
 -	mei_io_list_init(&dev->write_list);
 -	mei_io_list_init(&dev->write_waiting_list);
 -	mei_io_list_init(&dev->ctrl_wr_list);
 -	mei_io_list_init(&dev->ctrl_rd_list);
 +/**
 + * mei_cancel_work. Cancel mei background jobs
 + *
 + * @dev: the device structure
 + *
 + * returns 0 on success or < 0 if the reset hasn't succeeded
 + */
 +void mei_cancel_work(struct mei_device *dev)
 +{
 +	cancel_work_sync(&dev->init_work);
 +	cancel_work_sync(&dev->reset_work);
  
 -	INIT_DELAYED_WORK(&dev->timer_work, mei_timer);
 -	INIT_WORK(&dev->init_work, mei_host_client_init);
 +	cancel_delayed_work(&dev->timer_work);
 +}
 +EXPORT_SYMBOL_GPL(mei_cancel_work);
  
 -	INIT_LIST_HEAD(&dev->wd_cl.link);
 -	INIT_LIST_HEAD(&dev->iamthif_cl.link);
 -	mei_io_list_init(&dev->amthif_cmd_list);
 -	mei_io_list_init(&dev->amthif_rd_complete_list);
 +/**
 + * mei_reset - resets host and fw.
 + *
 + * @dev: the device structure
 + */
 +int mei_reset(struct mei_device *dev)
 +{
 +	enum mei_dev_state state = dev->dev_state;
 +	bool interrupts_enabled;
 +	int ret;
  
 -	bitmap_zero(dev->host_clients_map, MEI_CLIENTS_MAX);
 -	dev->open_handle_count = 0;
 +	if (state != MEI_DEV_INITIALIZING &&
 +	    state != MEI_DEV_DISABLED &&
 +	    state != MEI_DEV_POWER_DOWN &&
 +	    state != MEI_DEV_POWER_UP)
- 		dev_warn(&dev->pdev->dev, "unexpected reset: dev_state = %s\n",
++		dev_warn_ratelimited(&dev->pdev->dev, "unexpected reset: dev_state = %s\n",
 +			 mei_dev_state_str(state));
  
 -	/*
 -	 * Reserving the first client ID
 -	 * 0: Reserved for MEI Bus Message communications
 +	/* we're already in reset, cancel the init timer
 +	 * if the reset was called due the hbm protocol error
 +	 * we need to call it before hw start
 +	 * so the hbm watchdog won't kick in
  	 */
 -	bitmap_set(dev->host_clients_map, 0, 1);
 +	mei_hbm_idle(dev);
 +
 +	/* enter reset flow */
 +	interrupts_enabled = state != MEI_DEV_POWER_DOWN;
 +	dev->dev_state = MEI_DEV_RESETTING;
 +
 +	dev->reset_count++;
 +	if (dev->reset_count > MEI_MAX_CONSEC_RESET) {
 +		dev_err(&dev->pdev->dev, "reset: reached maximal consecutive resets: disabling the device\n");
 +		dev->dev_state = MEI_DEV_DISABLED;
 +		return -ENODEV;
 +	}
 +
 +	ret = mei_hw_reset(dev, interrupts_enabled);
 +	/* fall through and remove the sw state even if hw reset has failed */
 +
 +	/* no need to clean up software state in case of power up */
 +	if (state != MEI_DEV_INITIALIZING &&
 +	    state != MEI_DEV_POWER_UP) {
 +
 +		/* remove all waiting requests */
 +		mei_cl_all_write_clear(dev);
 +
 +		mei_cl_all_disconnect(dev);
 +
 +		/* wake up all readers and writers so they can be interrupted */
 +		mei_cl_all_wakeup(dev);
 +
 +		/* remove entry if already in list */
 +		dev_dbg(&dev->pdev->dev, "remove iamthif and wd from the file list.\n");
 +		mei_cl_unlink(&dev->wd_cl);
 +		mei_cl_unlink(&dev->iamthif_cl);
 +		mei_amthif_reset_params(dev);
 +		memset(&dev->wr_ext_msg, 0, sizeof(dev->wr_ext_msg));
 +	}
 +
 +
 +	dev->me_clients_num = 0;
 +	dev->rd_msg_hdr = 0;
 +	dev->wd_pending = false;
 +
 +	if (ret) {
 +		dev_err(&dev->pdev->dev, "hw_reset failed ret = %d\n", ret);
 +		dev->dev_state = MEI_DEV_DISABLED;
 +		return ret;
 +	}
 +
 +	if (state == MEI_DEV_POWER_DOWN) {
 +		dev_dbg(&dev->pdev->dev, "powering down: end of reset\n");
 +		dev->dev_state = MEI_DEV_DISABLED;
 +		return 0;
 +	}
 +
 +	ret = mei_hw_start(dev);
 +	if (ret) {
 +		dev_err(&dev->pdev->dev, "hw_start failed ret = %d\n", ret);
 +		dev->dev_state = MEI_DEV_DISABLED;
 +		return ret;
 +	}
 +
 +	dev_dbg(&dev->pdev->dev, "link is established start sending messages.\n");
 +
 +	dev->dev_state = MEI_DEV_INIT_CLIENTS;
 +	ret = mei_hbm_start_req(dev);
 +	if (ret) {
 +		dev_err(&dev->pdev->dev, "hbm_start failed ret = %d\n", ret);
 +		dev->dev_state = MEI_DEV_DISABLED;
 +		return ret;
 +	}
 +
 +	return 0;
  }
 -EXPORT_SYMBOL_GPL(mei_device_init);
 +EXPORT_SYMBOL_GPL(mei_reset);
  
  /**
   * mei_start - initializes host and fw to start work.

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread
* linux-next: manual merge of the akpm-current tree with the char-misc tree
@ 2015-08-06  6:35 Stephen Rothwell
  2015-08-06 21:12 ` Greg KH
  0 siblings, 1 reply; 9+ messages in thread
From: Stephen Rothwell @ 2015-08-06  6:35 UTC (permalink / raw)
  To: Andrew Morton, Greg KH, Arnd Bergmann
  Cc: linux-next, linux-kernel, Vitaly Kuznetsov, dyoung@redhat•com

Hi Andrew,

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

  include/linux/kexec.h

between commit:

  2b94ed245861 ("kexec: define kexec_in_progress in !CONFIG_KEXEC case")

from the char-misc tree and commit:

  3d86985f695b ("kexec: split kexec_load syscall from kexec core code")

from the akpm-current tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

-- 
Cheers,
Stephen Rothwell                    sfr@canb•auug.org.au

diff --cc include/linux/kexec.h
index b63218f68c4b,5f193d80a6fb..000000000000
--- a/include/linux/kexec.h
+++ b/include/linux/kexec.h
@@@ -323,8 -325,7 +325,8 @@@ struct pt_regs
  struct task_struct;
  static inline void crash_kexec(struct pt_regs *regs) { }
  static inline int kexec_should_crash(struct task_struct *p) { return 0; }
 +#define kexec_in_progress false
- #endif /* CONFIG_KEXEC */
+ #endif /* CONFIG_KEXEC_CORE */
  
  #endif /* !defined(__ASSEBMLY__) */
  

^ permalink raw reply	[flat|nested] 9+ messages in thread
* linux-next: manual merge of the akpm-current tree with the char-misc tree
@ 2015-01-13  5:49 Stephen Rothwell
  0 siblings, 0 replies; 9+ messages in thread
From: Stephen Rothwell @ 2015-01-13  5:49 UTC (permalink / raw)
  To: Andrew Morton, Greg KH, Arnd Bergmann, Leonid Iziumtsev
  Cc: linux-next, linux-kernel, Gigi Joseph, Gustavo Padovan, Amir Ayun,
	Pavan Savoy

[-- Attachment #1: Type: text/plain, Size: 583 bytes --]

Hi Andrew,

Today's linux-next merge of the akpm-current tree got a conflict in
drivers/misc/ti-st/st_core.c between commit 0ec0cf19201d
("drivers:misc:ti-st: protect against bad packets") from the char-misc
tree and commit 55ed078edf3f ("drivers/misc/ti-st/st_core.c: fix NULL
dereference on protocol type check") from the akpm-current tree.

I fixed it up (they were doing the same thing, so I kept the former as
it has a nice comment) and can carry the fix as necessary (no action is
required).

-- 
Cheers,
Stephen Rothwell                    sfr@canb•auug.org.au

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread
* linux-next: manual merge of the akpm-current tree with the char-misc tree
@ 2014-01-10  4:36 Stephen Rothwell
  0 siblings, 0 replies; 9+ messages in thread
From: Stephen Rothwell @ 2014-01-10  4:36 UTC (permalink / raw)
  To: Andrew Morton, Greg KH, Arnd Bergmann
  Cc: linux-next, linux-kernel, Ian Munsie, Tomas Winkler,
	Alexander Usyskin

[-- Attachment #1: Type: text/plain, Size: 3686 bytes --]

Hi Andrew,

Today's linux-next merge of the akpm-current tree got a conflict in
drivers/misc/mei/hbm.c between commit 544f94601409 ("mei: do not run
reset flow from the interrupt thread") from the char-misc tree and commit
dd045dab2999 ("drivers/misc/mei: ratelimit several error messages") from
the akpm-current tree.

I am not sure if the akpm-current tree fix is still needed, but I fixed
it up anyway (see below) and can carry the fix as necessary (no action is
required).

-- 
Cheers,
Stephen Rothwell                    sfr@canb•auug.org.au

diff --cc drivers/misc/mei/hbm.c
index 8520cdfa2f05,2ab8b1dab39c..000000000000
--- a/drivers/misc/mei/hbm.c
+++ b/drivers/misc/mei/hbm.c
@@@ -626,31 -597,25 +626,31 @@@ int mei_hbm_dispatch(struct mei_device 
  		}
  
  		if (!mei_hbm_version_is_supported(dev)) {
 -			dev_warn(&dev->pdev->dev, "hbm version mismatch: stopping the driver.\n");
 +			dev_warn(&dev->pdev->dev, "hbm: start: version mismatch - stopping the driver.\n");
  
 -			dev->hbm_state = MEI_HBM_STOP;
 +			dev->hbm_state = MEI_HBM_STOPPED;
  			mei_hbm_stop_req_prepare(dev, &dev->wr_msg.hdr,
  						dev->wr_msg.data);
 -			mei_write_message(dev, &dev->wr_msg.hdr,
 -					dev->wr_msg.data);
 +			if (mei_write_message(dev, &dev->wr_msg.hdr,
 +					dev->wr_msg.data)) {
 +				dev_err(&dev->pdev->dev, "hbm: start: failed to send stop request\n");
 +				return -EIO;
 +			}
 +			break;
 +		}
  
 -			return;
 +		if (dev->dev_state != MEI_DEV_INIT_CLIENTS ||
 +		    dev->hbm_state != MEI_HBM_START) {
- 			dev_err(&dev->pdev->dev, "hbm: start: state mismatch, [%d, %d]\n",
++			dev_err_ratelimited(&dev->pdev->dev, "hbm: start: state mismatch, [%d, %d]\n",
 +				dev->dev_state, dev->hbm_state);
 +			return -EPROTO;
  		}
  
 -		if (dev->dev_state == MEI_DEV_INIT_CLIENTS &&
 -		    dev->hbm_state == MEI_HBM_START) {
 -			dev->init_clients_timer = 0;
 -			mei_hbm_enum_clients_req(dev);
 -		} else {
 -			dev_err_ratelimited(&dev->pdev->dev, "reset: wrong host start response\n");
 -			mei_reset(dev, 1);
 -			return;
 +		dev->hbm_state = MEI_HBM_STARTED;
 +
 +		if (mei_hbm_enum_clients_req(dev)) {
 +			dev_err(&dev->pdev->dev, "hbm: start: failed to send enumeration request\n");
 +			return -EIO;
  		}
  
  		wake_up_interruptible(&dev->wait_recvd_msg);
@@@ -731,25 -681,19 +731,25 @@@
  				< sizeof(enum_res->valid_addresses));
  		memcpy(dev->me_clients_map, enum_res->valid_addresses,
  			sizeof(enum_res->valid_addresses));
 -		if (dev->dev_state == MEI_DEV_INIT_CLIENTS &&
 -		    dev->hbm_state == MEI_HBM_ENUM_CLIENTS) {
 -				dev->init_clients_timer = 0;
 -				mei_hbm_me_cl_allocate(dev);
 -				dev->hbm_state = MEI_HBM_CLIENT_PROPERTIES;
 -
 -				/* first property reqeust */
 -				mei_hbm_prop_req(dev);
 -		} else {
 -			dev_err_ratelimited(&dev->pdev->dev, "reset: unexpected enumeration response hbm.\n");
 -			mei_reset(dev, 1);
 -			return;
 +
 +		if (dev->dev_state != MEI_DEV_INIT_CLIENTS ||
 +		    dev->hbm_state != MEI_HBM_ENUM_CLIENTS) {
- 			dev_err(&dev->pdev->dev, "hbm: enumeration response: state mismatch, [%d, %d]\n",
++			dev_err_ratelimited(&dev->pdev->dev, "hbm: enumeration response: state mismatch, [%d, %d]\n",
 +				dev->dev_state, dev->hbm_state);
 +			return -EPROTO;
 +		}
 +
 +		if (mei_hbm_me_cl_allocate(dev)) {
 +			dev_err(&dev->pdev->dev, "hbm: enumeration response: cannot allocate clients array\n");
 +			return -ENOMEM;
  		}
 +
 +		dev->hbm_state = MEI_HBM_CLIENT_PROPERTIES;
 +
 +		/* first property request */
 +		if (mei_hbm_prop_req(dev))
 +			return -EIO;
 +
  		break;
  
  	case HOST_STOP_RES_CMD:

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2015-08-06 21:12 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-14  4:51 linux-next: manual merge of the akpm-current tree with the char-misc tree Stephen Rothwell
2014-01-14  8:31 ` Winkler, Tomas
2014-01-15  1:57   ` Ian Munsie
2014-01-15 22:36     ` Winkler, Tomas
2014-01-15 23:52       ` Ian Munsie
  -- strict thread matches above, loose matches on Subject: below --
2015-08-06  6:35 Stephen Rothwell
2015-08-06 21:12 ` Greg KH
2015-01-13  5:49 Stephen Rothwell
2014-01-10  4:36 Stephen Rothwell

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