diff options
author | H. Peter Anvin <hpa@linux.intel.com> | 2014-02-07 11:27:30 -0800 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2014-02-07 11:27:30 -0800 |
commit | a3b072cd180c12e8fe0ece9487b9065808327640 (patch) | |
tree | 62b982041be84748852d77cdf6ca5639ef40858f /drivers/uwb | |
parent | 75a1ba5b2c529db60ca49626bcaf0bddf4548438 (diff) | |
parent | 081cd62a010f97b5bc1d2b0cd123c5abc692b68a (diff) | |
download | linux-a3b072cd180c12e8fe0ece9487b9065808327640.tar.bz2 |
Merge tag 'efi-urgent' into x86/urgent
* Avoid WARN_ON() when mapping BGRT on Baytrail (EFI 32-bit).
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'drivers/uwb')
-rw-r--r-- | drivers/uwb/beacon.c | 9 | ||||
-rw-r--r-- | drivers/uwb/radio.c | 6 | ||||
-rw-r--r-- | drivers/uwb/rsv.c | 16 | ||||
-rw-r--r-- | drivers/uwb/umc-bus.c | 2 | ||||
-rw-r--r-- | drivers/uwb/umc-dev.c | 1 |
5 files changed, 20 insertions, 14 deletions
diff --git a/drivers/uwb/beacon.c b/drivers/uwb/beacon.c index dcdd59bfcd09..57b5ff61020c 100644 --- a/drivers/uwb/beacon.c +++ b/drivers/uwb/beacon.c @@ -117,6 +117,7 @@ int uwb_rc_beacon(struct uwb_rc *rc, int channel, unsigned bpst_offset) int result; struct device *dev = &rc->uwb_dev.dev; + dev_dbg(dev, "%s: channel = %d\n", __func__, channel); if (channel < 0) channel = -1; if (channel == -1) @@ -184,7 +185,7 @@ out: /* Find a beacon by dev addr in the cache */ static -struct uwb_beca_e *__uwb_beca_find_bymac(struct uwb_rc *rc, +struct uwb_beca_e *__uwb_beca_find_bymac(struct uwb_rc *rc, const struct uwb_mac_addr *mac_addr) { struct uwb_beca_e *bce, *next; @@ -515,13 +516,13 @@ int uwbd_evt_handle_rc_bp_slot_change(struct uwb_event *evt) } bpsc = container_of(evt->notif.rceb, struct uwb_rc_evt_bp_slot_change, rceb); - mutex_lock(&rc->uwb_dev.mutex); if (uwb_rc_evt_bp_slot_change_no_slot(bpsc)) { - dev_info(dev, "stopped beaconing: No free slots in BP\n"); + dev_err(dev, "stopped beaconing: No free slots in BP\n"); + mutex_lock(&rc->uwb_dev.mutex); rc->beaconing = -1; + mutex_unlock(&rc->uwb_dev.mutex); } else rc->uwb_dev.beacon_slot = uwb_rc_evt_bp_slot_change_slot_num(bpsc); - mutex_unlock(&rc->uwb_dev.mutex); return 0; } diff --git a/drivers/uwb/radio.c b/drivers/uwb/radio.c index d58dfecf9a79..fd23d985ea71 100644 --- a/drivers/uwb/radio.c +++ b/drivers/uwb/radio.c @@ -62,6 +62,10 @@ static void uwb_radio_channel_changed(struct uwb_rc *rc, int channel) static int uwb_radio_change_channel(struct uwb_rc *rc, int channel) { int ret = 0; + struct device *dev = &rc->uwb_dev.dev; + + dev_dbg(dev, "%s: channel = %d, rc->beaconing = %d\n", __func__, + channel, rc->beaconing); if (channel == -1) uwb_radio_channel_changed(rc, channel); @@ -89,7 +93,7 @@ static int uwb_radio_change_channel(struct uwb_rc *rc, int channel) * uwb_radio_start - request that the radio be started * @pal: the PAL making the request. * - * If the radio is not already active, aa suitable channel is selected + * If the radio is not already active, a suitable channel is selected * and beacons are started. */ int uwb_radio_start(struct uwb_pal *pal) diff --git a/drivers/uwb/rsv.c b/drivers/uwb/rsv.c index 738e8a8cb811..3fe611941046 100644 --- a/drivers/uwb/rsv.c +++ b/drivers/uwb/rsv.c @@ -237,7 +237,7 @@ void uwb_rsv_backoff_win_increment(struct uwb_rc *rc) /* reset the timer associated variables */ timeout_us = bow->n * UWB_SUPERFRAME_LENGTH_US; bow->total_expired = 0; - mod_timer(&bow->timer, jiffies + usecs_to_jiffies(timeout_us)); + mod_timer(&bow->timer, jiffies + usecs_to_jiffies(timeout_us)); } static void uwb_rsv_stroke_timer(struct uwb_rsv *rsv) @@ -257,7 +257,7 @@ static void uwb_rsv_stroke_timer(struct uwb_rsv *rsv) sframes = 1; if (rsv->state == UWB_RSV_STATE_O_ESTABLISHED) sframes = 0; - + } if (sframes > 0) { @@ -611,7 +611,7 @@ int uwb_rsv_try_move(struct uwb_rsv *rsv, struct uwb_mas_bm *available) struct device *dev = &rc->uwb_dev.dev; struct uwb_rsv_move *mv; int ret = 0; - + if (bow->can_reserve_extra_mases == false) return -EBUSY; @@ -628,7 +628,7 @@ int uwb_rsv_try_move(struct uwb_rsv *rsv, struct uwb_mas_bm *available) } else { dev_dbg(dev, "new allocation not found\n"); } - + return ret; } @@ -640,7 +640,7 @@ void uwb_rsv_handle_drp_avail_change(struct uwb_rc *rc) struct uwb_drp_backoff_win *bow = &rc->bow; struct uwb_rsv *rsv; struct uwb_mas_bm mas; - + if (bow->can_reserve_extra_mases == false) return; @@ -652,7 +652,7 @@ void uwb_rsv_handle_drp_avail_change(struct uwb_rc *rc) uwb_rsv_try_move(rsv, &mas); } } - + } /** @@ -916,10 +916,10 @@ static void uwb_rsv_alien_bp_work(struct work_struct *work) struct uwb_rsv *rsv; mutex_lock(&rc->rsvs_mutex); - + list_for_each_entry(rsv, &rc->reservations, rc_node) { if (rsv->type != UWB_DRP_TYPE_ALIEN_BP) { - rsv->callback(rsv); + uwb_rsv_callback(rsv); } } diff --git a/drivers/uwb/umc-bus.c b/drivers/uwb/umc-bus.c index e3ed6ff6a481..88a290f57ea0 100644 --- a/drivers/uwb/umc-bus.c +++ b/drivers/uwb/umc-bus.c @@ -85,7 +85,7 @@ int umc_match_pci_id(struct umc_driver *umc_drv, struct umc_dev *umc) const struct pci_device_id *id_table = umc_drv->match_data; struct pci_dev *pci; - if (umc->dev.parent->bus != &pci_bus_type) + if (!dev_is_pci(umc->dev.parent)) return 0; pci = to_pci_dev(umc->dev.parent); diff --git a/drivers/uwb/umc-dev.c b/drivers/uwb/umc-dev.c index 4613c13cd851..7b0b268e0c8e 100644 --- a/drivers/uwb/umc-dev.c +++ b/drivers/uwb/umc-dev.c @@ -66,6 +66,7 @@ int umc_device_register(struct umc_dev *umc) return 0; error_device_register: + put_device(&umc->dev); release_resource(&umc->resource); error_request_resource: return err; |