Hi all, Today's linux-next merge of the block tree got a conflict in: block/blk-settings.c include/linux/blkdev.h between commit: 45147fb522bb459e7 ("block: add a helper function to merge the segments") from the dma-mapping tree and commit: 68c43f133a754cbf5 ("block: Introduce elevator features") 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. diff --cc block/blk-settings.c index c3632fc6d5404,6bd1e3b082d8e..0000000000000 --- a/block/blk-settings.c +++ b/block/blk-settings.c @@@ -833,28 -832,22 +833,44 @@@ void blk_queue_write_cache(struct reque } EXPORT_SYMBOL_GPL(blk_queue_write_cache); +/** + * blk_queue_can_use_dma_map_merging - configure queue for merging segments. + * @q: the request queue for the device + * @dev: the device pointer for dma + * + * Tell the block layer about merging the segments by dma map of @q. + */ +bool blk_queue_can_use_dma_map_merging(struct request_queue *q, + struct device *dev) +{ + unsigned long boundary = dma_get_merge_boundary(dev); + + if (!boundary) + return false; + + /* No need to update max_segment_size. see blk_queue_virt_boundary() */ + blk_queue_virt_boundary(q, boundary); + + return true; +} +EXPORT_SYMBOL_GPL(blk_queue_can_use_dma_map_merging); + + /** + * blk_queue_required_elevator_features - Set a queue required elevator features + * @q: the request queue for the target device + * @features: Required elevator features OR'ed together + * + * Tell the block layer that for the device controlled through @q, only the + * only elevators that can be used are those that implement at least the set of + * features specified by @features. + */ + void blk_queue_required_elevator_features(struct request_queue *q, + unsigned int features) + { + q->required_elevator_features = features; + } + EXPORT_SYMBOL_GPL(blk_queue_required_elevator_features); + static int __init blk_settings_init(void) { blk_max_low_pfn = max_low_pfn - 1; diff --cc include/linux/blkdev.h index f6d55e2490dcf,b196124e32408..0000000000000 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@@ -1085,8 -1099,8 +1099,10 @@@ extern void blk_queue_dma_alignment(str extern void blk_queue_update_dma_alignment(struct request_queue *, int); extern void blk_queue_rq_timeout(struct request_queue *, unsigned int); extern void blk_queue_write_cache(struct request_queue *q, bool enabled, bool fua); +extern bool blk_queue_can_use_dma_map_merging(struct request_queue *q, + struct device *dev); + extern void blk_queue_required_elevator_features(struct request_queue *q, + unsigned int features); /* * Number of physical segments as sent to the device.
Attachment:
signature.asc
Description: PGP signature